겟방식으로 제목과 필드내용에 입력을 시키려고 합니다

안녕하세요 퍼스트 콘텐츠몰을 이용하려고 하다가, 커스터마이징 시간이 좀 걸릴거같아서ㅠ
그냥 다이렉트로 필요한것들만 간단히 구현하려고, 에스크원 게시판에 겟방식으로 필드에 내용을 입력시키려고 합니다.
케이보드 사용자들이 계속 늘면서 저 아니여도 바쁘실테니, 왠만하면 질문을 안하려고했는데ㅠㅠ
이번 한주내내 헤매다시피하다가 결국 계층형이랑 컨텐츠쪽이 도저히 해결이 안되어 질문을 남깁니다ㅠㅠㅠ 흑ㅠㅠ

 

예를들어 구매하기버튼을 만들어놓고 절대 경로로 겟방식으로 넣으려고 하고있습니다.
예를들어 주소자체를
"해당게시판에 에디터모드 주소&title=로고제작&price=3만원&tree_category1=디자인&tree_category2=로고제작&content=성함:<br>연락처:<br><br>무통장입금 1234123로 입금하시면 작업이 시작됩니다."

이걸 버튼링크에 절대주소로 걸어놓고, 구매하기를 누르면, 해당게시판에 에디터로 이동되고
서비스(제목)에는 겟으로 받은 '로고제작'이 자연적으로 뜨게끔하고
입력필드설정으로 인풋 메타키 price에 가격에는 겟으로 받은 '3만원'이 뜨게끔하고
컨텐츠에는 겟으로 받은 것에는 성함 연락처 무통장~~ 이문구를 띄우려합니다.

즉  겟경로를 전부 포함하여 주소를 넣어 만든 구매하기버튼을 누르면, 바로 게시판 에디터로 이동하여


------------------------------------------------------------

서비스명: 로고제작 (타이틀입니다)
가격: 3만원 (인풋 필드 메타키 price입니다)
카테고리: 디자인 | 로고제작  (계층형입니다)
------------------------------------------------------------
(컨텐츠(내용)영역입니다)
성함: 
연락처:

무통장입금 1234123로 입금하시면 작업이 시작됩니다.
(컨텐츠(내용)영역입니다)
--------------------------------------------------------------
[주문하기(글쓰기를 주문하기로 텍스트만 바꿨습니다)]


요렇게 바로 뜨게끔 하려고 합니다.

 

그래서 게시판설정에 입력필드설정에 기본값에 <?php $_GET['title'];?> 같이 적어놓아도 php를 인식못하고ㅠ
이걸 숏코드로 만들어서 숏코드로 붙혀넣었더니 그냥 [shortcode-title] 겟을 인식하는것이 아닌 그냥 숏코드 대괄호까지 그대로 그냥 숏코드가 뜹니다ㅠ

 

그래서 몇일밤을 헤매다가 결국은 다음과 같이 어느정도는 해결할수는 있었습니다.

	add_filter('kboard_get_template_field_data', 'my_kboard_get_template_field_data', 10, 3);
function my_kboard_get_template_field_data($field, $content, $board){
	$user_id = get_current_user_id();
	$user = get_userdata($user_id);

	if($board->id == '2' && is_user_logged_in()){
		if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'title'){
			$field['default_value'] = $_GET['title'];
		}

		if(isset($field['default_value']) && isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'price'){
			$field['default_value'] = '$_GET['price']';
		}

		if(isset($field['default_value']) &&isset($field['meta_key'])&&$field['meta_key'] && $field['meta_key'] == 'content'){
			$field['default_value'] = '$_GET['content']';
		}
	}

	return $field;
}

 

이렇게 했더니, 제목과 가격은 잘 뜨는데, 컨텐츠는 안뜹니다ㅠㅠ
그리고 겟주소까지 전부 링크를 건 구매하기 버튼을 누르면 바로 에디터로 이동해서
계층형카테고리까지 설정되게끔 하고싶습니다.
즉 계층형카테고리에 "디자인->로고제작"을 설정하게끔 하고 싶은데 (다른버튼에 겟방식을 달리하면 그리 설정한대로 예를들어 문서작성->글쓰기, 디자인->상세페이지 등등)

계층형카테고리도 겟방식이나 아니면 겟을 통해 조건을 줘서 뭐 설정을하면 바로 될거같은데, 몇일밤을 뒤져봐도 이 구간을 뚫지못하겠네요ㅠㅠ
존경하는 스레드봇님 부디 꼭 도와주세요ㅠㅠㅠㅠ 어떤식으로 구현하면 될까요??ㅠㅠ 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    KBoard 플러그인 글쓰기 페이지에서 본문 내용의 값을

    주소에서 가져오게 하시려면

    kboard_content_value 필터를 활용해보시겠어요?

     

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보세요.

    add_filter('kboard_content_value', 'my_kboard_content_value', 10, 3);
    function my_kboard_content_value($value, $name, $content){
    	$board = $content->getBoard();
    	$content = isset($_GET['content']) ? sanitize_text_field($_GET['content']) : '';
    	
    	if(kboard_mod() == 'editor' && $board->id == '1' && $name == 'content'){ // 실제 게시판 id로 적용해주세요.
    		$value = $content;
    	}
    	return $value;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

     

    올려주신 코드 중 '$_GET['price']' 부분은 $_GET['price']로 교체해주셔야

    가격도 주소에서 정상적으로 받아오실 수 있습니다.

     

    계층형 카테고리도 주소의 값으로 적용하시려면

    아래의 코드도 추가해보세요.

    add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
    function my_kboard_get_template_field_html($field_html, $field, $content, $board){
    	$meta_key = isset($field['meta_key']) ? esc_attr($field['meta_key']) : '';
    	$required = isset($field['required']) ? 'required' : '';
    	$field_name = isset($field['field_name'])&&$field['field_name'] ? $field['field_name'] : $field['field_label'];
    	$field_type = isset($field['field_type']) ? $field['field_type'] : '';
    	
    	if($board->id == '1' && $field_type == 'tree_category'){ // 실제 게시판 id로 적용해주세요.
    		$tree_category = array();
    		foreach($_GET as $key=>$item){
    			if(strpos($key, 'tree_category') !== false){
    				$tree_category[] = $item;
    			}
    		}
    		
    		ob_start();
    		?>
    		<?php if($board->isTreeCategoryActive()):?>
    			<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> <?php echo esc_attr($required)?>">
    				<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><span class="field-name"><?php echo esc_html($field_name)?></span></label>
    				<div class="attr-value">
    					<?php foreach($tree_category as $index=>$category):?>
    					<input type="hidden" id="tree-category-check-<?php echo $index+1?>" value="<?php echo $category?>">
    					<input type="hidden" name="kboard_option_tree_category_<?php echo $index+1?>" value="<?php echo $category?>">
    					<?php endforeach?>
    					<div class="kboard-tree-category-wrap"></div>
    					<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
    				</div>
    			</div>
    		<?php endif?>
    		<?php
    		$field_html = ob_get_clean();
    	}
    	
    	return $field_html;
    }

    실제 브라우저에서 주소 형식은 게시판페이지주소/?mod=editor&pageid=1&tree_category1=카테고리1&tree_category2=카테고리2

    이런 식으로 접속해서 확인해보시겠어요?

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요