KBoard 오션 프랜차이즈 게시판과 코스모스팜 회원관리 두 가지가 연결되게 하고 싶은데요

안녕하세요 요즘 너무 많은 문의를 드리는거같아 죄송합니다

KBoard 오션 프랜차이즈 스킨을 적용하고 코스모스팜 회원관리 적용해서 사용중인데

오션 프랜차이즈를 적용해서 체인점을 입력 중인데요

가입시에 어디 체인점에서 가입을 하는것인지 알수있게

가입양식에 프랜차이즈에 입력한 데이터를 드롭박스로 구성하고싶은데요

어떻게 연결을 해야할지를 모르겠습니다 도움부탁드려요

 

하고자 하는것은

드롬박스 1 - 지역 (서울 경기 경남 등등)

드롭박스 2 - 세부지역 (오션 프랜차이즈로 등록한 지점)

입니다

 

도움 부탁드립니다

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    1. 드롬박스 1 - 지역 부분은 직접 필드 추가로 입력해주셔야 할 듯합니다.

    워드프레스 관리자 -> 설정 -> WP-Members -> 필드 페이지에서

    필드 타입을 select (dropdown) 방식으로 추가하신 후에 지역을 일일이 입력해보세요.

     

    2. 드롭박스 2 - 세부지역은 지점명을 말씀하시는 지요?

    오션 프랜차이즈 스킨에서 지점명은 kboard_board_content 테이블에서 member_display로 활용하고 있습니다.

    필드 타입을 select (dropdown) 방식으로 추가하신 후에

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

    아래의 코드를 추가해보시겠어요?

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	global $wpdb;
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '';
    	
    	foreach($area as $value){
    		$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    	}
    	
    	$rows['meta_key']['field'] = '<select>'.$option.'</select>';
    	
    	return $rows;
    }

    위 코드에서 $board_id = '1' 부분은 실제 게시판 id로 적용하시고

    'meta_key' 부분은 실제 사용 중인 필드의 Meta Key 값으로 변경해주세요.

    Meta Key 값은 WP- Members 플러그인의 필드 관리 페이지에서 확인할 수 있습니다.

    고맙습니다.

  • 아래의 코드 대신

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	global $wpdb;
    	$meta_key = 'ocean';
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '<option value="">선택안함</option>';
    	
    	foreach($area as $value){
    		$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    	}
    	
    	$rows[$meta_key]['field'] = '<select name="'.$meta_key.'">'.$option.'</select>';
    	
    	return $rows;
    }

    아래의 코드로 교체해보세요.

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	global $wpdb;
    	$meta_key = 'ocean';
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '<option value="">선택안함</option>';
    	$user_meta = is_user_logged_in() ? get_user_meta(get_current_user_id(), 'ocean', true) : '';
    
    	foreach($area as $value){
    		if($user_meta == $value->member_display){
    			$option .= '<option value="'.$value->member_display.'" selected>'.$value->member_display.'</option>';
    		}
    		else{
    			$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    		}
    	}
    	
    	$rows[$meta_key]['field'] = '<select name="'.$meta_key.'">'.$option.'</select>';
    	
    	return $rows;
    }

    고맙습니다.

  • 감사합니다 잘 적용되었습니다

    한가지더 질문입니다

    회원정보 수정시 해당값이 계속 선택안함으로 보여지는데

    선택한값이 있는경우 회원정보 수정에서 초기에 입력한값으로

    보여지게 하려면 어떻게 해야할까요?

  • 안녕하세요.

    관리자 페이지에서도 적용하시려면

    이전에 추가하신 코드를 지우신 후에

    아래의 코드를 적용해보세요.

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	global $wpdb;
    	$meta_key = 'ocean';
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '<option value="">선택안함</option>';
    	
    	foreach($area as $value){
    		$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    	}
    	
    	$rows[$meta_key]['field'] = '<select name="'.$meta_key.'">'.$option.'</select>';
    	
    	return $rows;
    }
    
    add_filter('wpmem_register_form_rows_admin', 'my_wpmem_admin_profile_field', 10, 2);
    function my_wpmem_admin_profile_field($rows, $display){
    	global $wpdb;
    	$meta_key = 'ocean';
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '<option value="">선택안함</option>';
    	$ocean = get_user_meta(get_current_user_id(), $meta_key, true);
    	
    	foreach($rows as $key=>$item){
    		if($key == $meta_key){
    			foreach($area as $value){
    				if($ocean == $value->member_display){
    					$option .= '<option value="'.$value->member_display.'" selected>'.$value->member_display.'</option>';
    				}
    				else{
    					$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    				}
    			}
    			$rows[$key]['field'] = '<select name="ocean">'.$option.'</select>';
    		}
    	}
    	
    	return $rows;
    }

    위 코드에서 $meta_key = 'ocean' 부분은 실제 사용 중인 필드의 Meta Key 값으로 변경해주세요.

    $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.

    고맙습니다.

  • 해당내용 잘 적용해서 사용중에 한가지더 질문드립니다

    가입시 받았던 지사드롭박스 처럼 운영자페이지에서도 가입한 사용자 수정시에 지사선택 드롭박스 메뉴를 적용하고싶은데 어디를 수정해야 할까요?

     

     

  • 안녕하세요.

    기존의 코드를 지우신 후에

    아래의 코드처럼 적용해보시겠어요?

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	global $wpdb;
    	$board_id = '1';
    	$area = $wpdb->get_results("SELECT DISTINCT `member_display` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}'");
    	$option = '<option value="">선택안함</option>';
    	
    	foreach($area as $value){
    		$option .= '<option value="'.$value->member_display.'">'.$value->member_display.'</option>';
    	}
    	
    	$rows['ocean']['field'] = '<select>'.$option.'</select>';
    	
    	return $rows;
    }

    고맙습니다.

  • 답변주신 내용 잘 적용되었습니다

    한가지 더 문의드리고싶은데요 

    프렌차이즈에 등록된 것이 드롭박스에 구현이 되었는데요

    제일 첫번째 드롭박스에는 선택안함 을 넣고싶은데 오션프렌차이즈에 지사로 등록을 하기는 조금 지저분해보여서

    따로 추가해줘야하는부분이 어느쪽인가요?

  • 안녕하세요.

    셀렉트 박스에 onchange 이벤트를 추가해서 처리를 해야 될 듯합니다.

    저희도 연구해보고 좋은 방법을 찾게 되면 안내해드리겠습니다.

    고맙습니다.

  • 답변 감사합니다!!

    드롭박스 1에서 선택한 지역의(서울경기등) 지점들만 드롭박스 2에서 보고싶은데

    위에 설명해주신데로 적용하니 드롭박스 2에는 모든 지점들이 나오네요

    따로 어떤형식으로 코드를 추가해줘야 할까요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기