私がやろうとしていることを達成するために使用しているものはたくさんありますが、一言で言えば、私がやっていることは次のとおりです。
お祝い (記念日、誕生日など) を表すカスタム ユーザー分類法を作成しました。ユーザーがサインアップすると (Gravity Forms ユーザー登録を使用)、参加したいものを確認します。したがって、フォームが渡されると、それはメタデータになります (Gravity Forms はユーザー登録のあるメタデータのみを扱います)。
そのメタデータを取得して分類法と比較し、一致する場合は挿入するスクリプトを見つけました。問題は、チェックボックスではなく、ラジオボタンのフォーム要素用に書かれていることです。複数項の選択はサポートされていません。そのため、選択の 1 つ (最後に選択されたもの) のみが挿入されます。
このスクリプトを、Wordpress の「記念日」に登録した単一の分類法ではなく、分類法 (記念日、誕生日など) の個々のカテゴリにマップするにはどうすればよいですか。
// 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 )
わかりやすくするために編集: 現在、このスクリプトは分類法に対してメタをチェックします。タクソノミーの子をチェックするために書き直す方法はありますか?
すなわち。私の登録タクソノミの名前は「日付」で、カテゴリは記念日、誕生日などです。このスクリプトは、「日付」のメインの登録タクソノミを比較します。代わりに「誕生日」など、タクソノミーのカテゴリを比較するように変更できますか?