我有一大堆东西用来完成我正在尝试做的事情......但简而言之,这就是我正在做的事情:
我创建了自定义用户分类来表示庆祝活动(周年纪念日、生日等)当用户注册时(w/Gravity Forms User Registration),他们会检查他们想要参与的活动。因此,当表单被传递时,它是元数据(Gravity Forms 只处理带有用户注册的元数据)。
我找到了一个脚本,它采用该元数据并将其与分类法进行比较,如果匹配,则插入它。问题是,它是为单选按钮表单元素编写的,而不是复选框。它不支持多项选择。因此,它只会插入其中一个选择(最后一个选择)。
如何让这个脚本映射到分类法中的各个类别(周年纪念日、生日等),而不是我在 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 )
为清晰而编辑: 目前,此脚本根据分类检查元数据。有没有办法重写它来检查分类的孩子?
IE。我的注册分类名称是“日期”,类别为周年纪念日、生日等。此脚本比较“日期”的主要注册分类。是否可以对其进行修改以比较分类法的类别,例如“生日”?