我有一组依赖于日历的产品(课程)。
日历由post类型date
生成,该post类型具有ACF字段date_start
和associated_product
逻辑是;用户创建一个post类型Date,该Date向关联产品的属性pa_dates
添加一个属性项。
我已经钩住了save_post
,到目前为止一切顺利,属性被写入到产品中。
然后我需要将日期字段复制到创建的术语$term_set
,这部分没有产生任何东西。(我需要这个日期来订购我产品中的条款)
部分问题是我无法询问变量,因为这一切都发生在一个无法打印输出的钩子中。(我试过fwrite
,但没有结果)
// Add terms on Date save.
function add_terms_to_date($post_ID) {
if ('date' !== get_post_type() ) {
return;
} else {
$product_id = get_field('associated_product',$post_ID);
$term_name = get_the_title($post_ID);
$taxonomy = 'pa_dates';
$term_set = wp_set_post_terms( $product_id, $term_name, $taxonomy, true );
// up to here, works fine.
// now need to identify that term ($term_set)
// Then I need to write copy the date field to its ACF field in my Date attribute
$selector = "term_date_start"; // the ACF field in the term
$date_start = get_field('date_start', $post_ID); // the date field to be copied
$value = $date_start;
// This next line caused the issue leading to the question so is commented out
// update_field($selector, $value, $term_set);
// and this line is correct
update_field($selector, $value, $taxonomy."_".$term_set);
}
}
add_action('save_post', 'add_terms_to_date');
所以,复杂的问题,简单的答案。
最后一行应为;
update_field($selector, $value, $taxonomy."_".$term_set);
为了避免与post id (RTFM)混淆,ACF有一个不同的系统来标识术语。($taxonomy
来自前一行,是pa_dates
)
我已经编辑了上面的帖子,希望它能对某人有所帮助。