0

나는 내가하려는 일을 성취하기 위해 사용하고있는 모든 것들을 가지고 있습니다 ... 그러나 간단히 말해서, 내가하고있는 일은 여기에 있습니다 :Wordpress 사용자 정의 사용자 분류 및 메타 데이터 등록 양식

기념일 (기념일, 생일 등)을 표시하기위한 맞춤형 사용자 분류 체계를 만들었습니다. 사용자가 (중력 양식 사용자 등록을 사용하여) 가입 할 때 어떤 항목을 원하는지 확인합니다. 따라서 양식이 전달되면 메타 데이터입니다 (Gravity Forms는 사용자 등록이있는 메타 데이터 만 처리합니다).

메타 데이터를 가져 와서 분류법과 비교하고 일치하는 스크립트를 삽입하는 스크립트를 발견했습니다. 문제는 확인란이 아닌 라디오 버튼 양식 요소 용으로 작성된 것입니다. 다단 선택을 지원하지 않습니다. 따라서 선택 항목 중 하나 (선택한 마지막 항목) 만 삽입합니다.

이 스크립트를 Wordpress "anniversary"에 등록한 단일 택 소노 미 대신에 택 소노 미 (기념일, 생일 등)의 개별 범주에 매핑하는 방법은 무엇입니까?

// Hook Gravity Forms user registration -> Map taxomomy 

function map_taxonomy($user_id, $config, $entry, $user_pass) { 

    global $wpdb; 

// Get all taxonomies 
    $taxs = get_taxonomies(); 

// Get all user meta 
    $all_meta_for_user = get_user_meta($user_id); 

// Loop through meta data and map to taxonomies with same name as user meta key 
    foreach ($all_meta_for_user as $taxonomy => $value) { 

     if (in_array ($taxonomy, $taxs)) {   // Check if there is a Taxonomy with the same name as the Custom user meta key 

     // Get term id 
      $term_id = get_user_meta($user_id, $taxonomy, true); 
      If (is_numeric($term_id)) {    // Check if Custom user meta is an ID 

       Echo $taxonomy.'='.$term_id.'<br>'; 

      // Add user to taxomomy term 
       $term = get_term($term_id, $taxonomy); 
       $termslug = $term->slug; 
       wp_set_object_terms($user_id, array($termslug), $taxonomy, false); 

      } 
     } 
    } 

} 
add_action("gform_user_registered", "map_taxonomy", 10, 4); 

은 (인해 지원 포럼의 익명에 나는 저자에게 연락 드릴 수 없습니다, 그것을 발견 포스트는 여기에 있습니다 :. http://wordpress.org/support/topic/plugin-gravity-forms-custom-post-types-custom-user-taxonomies) 명확성을 위해

편집 : 현재,이 스크립트는 분류법에 대해 메타를 검사합니다. 택 소노 미의 자녀들을 검사하기 위해 다시 작성하는 방법이 있습니까?

즉. 등록 된 분류학의 이름은 Anniversaries, Birthdays 등의 카테고리가있는 "Dates"입니다. 이 스크립트는 등록 된 "Dates"분류를 비교합니다. Taxonomy의 카테고리 (예 : '생일')를 비교하도록 수정할 수 있습니까?

답변

0

여기서 코드는 수정해야하는 코드가 아니며,이 코드는이 코드를 트리거합니다. 다시 말해, 어딘가에 $ _POST [ 'data']를 받고이 함수를 호출하면, 우리가 알아야 할 것이 있습니다. 일반적으로 여러 값을 전달할 모든 입력에는 다음과 같이 선언 된 이름이 필요합니다. name = 'something []'- 대괄호는 해당 필드를 값의 배열로 전달하도록 양식에 알리는 것입니다. 수신 측에서는 해당 배열을 구문 분석하고 무언가를 수행해야합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 네가하는 말을 보았다.불행히도, 나는 특정 코드 문자열을 어디서부터 찾을 지조차 확신하지 못한다. Gravity Forms를 사용하고 사용자 등록 메타 데이터에 사용자 등록을 추가하기 때문에 ... GF 플러그인의 어느 위치 에나 묻힐 수 있습니다. – user2624620

0

내가이 작업을 얻고, 여기에 내가 무슨 짓을했는지 ...

// Hook Gravity Forms user registration -> Map taxomomy 

function map_taxonomy($user_id, $config, $entry, $user_pass) { 

    global $wpdb; 

// Get terms from taxonomy anniversary 
    $terms = get_terms('anniversary', array('hide_empty' => 0)); 
    $termslugs = array(); 
    foreach($terms as $term) { 
     $i = $term->slug; 
     $termslugs[$i] = $term->slug; 
    } 
    $cats = $termslugs; 


// Get all user meta 
    $all_meta_for_user = get_user_meta($user_id); 

// Loop through meta data and map to categories with same name as user meta key 
    foreach ($all_meta_for_user as $category => $value) { 

     if (in_array ($category, $cats)) {   // Check if there is a category with the same name as the Custom user meta key 

     // Get term id 
      $term_id = get_user_meta($user_id, $category, true); 
      If (is_numeric($term_id)) {    // Check if Custom user meta is an ID 

       echo '<p>'.$user_id.' | '.$category.'='.$term_id.'</p>'; 

      // Add user to taxomomy term 
       $taxonomy = 'anniversary'; 
       $term = get_term($term_id, $taxonomy); 
       $termslug = $term->slug; 
       wp_set_object_terms($user_id, array($termslug), $taxonomy, true); 

      } 
     } 
    } 

} 
add_action("gform_user_registered", "map_taxonomy", 10, 4); 

가 대신 분류 체계를 매핑의이 특정 분류를 매핑하고, 분류 배열과 같은 배열의 굼벵이를 반환합니다. 여기에서 메타 데이터를 슬러그와 비교하고 term_id를 부모 택 소노 미에 삽입합니다.

지금은 특별히 택 소노 미를 2 곳에서 이름으로 호출하는 경우에만 작동합니다. 나는 나보다 똑똑한 누군가가 그것을보다 역동적으로 만드는 방법을 알 수있을 것이라고 확신한다.

그러나 다른 사람이 같은 일을 할 필요가 (하고 있었다 어떤 표시를 인터넷 검색을하면, 많은 않음) 귀하의 워드 프레스 테마의 functions.php에서이 코드를 스틱 경우 - 나는 중력 양식 사용자 등록 플러그인을 사용하고

0

사용자가 양식을 편집하기로 결정한 경우 현재 택 소노 미에 다른 항목이 만들어 지거나 한 항목이 업데이트됩니까?

0

사용자를 분류하려면이 WordPress를 사용해보십시오 plugin