您可以在插入新产品时(而不是在更新时)通过操作来实现这一点。由于您没有指定元密钥,因此此字段存储在用户As下,或者存储在产品上的元密钥:
add_action( \'wp_insert_post\', \'smyles_insert_user_product_data\', 10, 3 );
function smyles_insert_user_product_data( $post_ID, $post, $update ){
if( $update || $post->post_type !== \'product\' ){
return;
}
$user_id = get_current_user_id();
if( $user_id ){
$short_bio = get_user_meta( $user_id, \'some_meta_key\', true );
if( ! empty( $short_bio ) ){
update_post_meta( $post_ID, \'product_meta_key\', $short_bio );
}
}
}
这假设“短bio”存储在用户的meta中,因此您需要找出该meta键并替换
some_meta_key
在上面的代码中为用户提供正确的一个。
然后,还需要定义要使用哪个元键在产品中设置该值,并替换product_meta_key
在上面
要查找使用的用户元密钥,可以使用“我的用户元显示”插件:https://wordpress.org/plugins/user-meta-display/ (虽然有点过时,但仍然有效)
UPDATE:
更新描述(
post_content
) 在将数据插入数据库之前,请使用以下选项:
add_action( \'wp_insert_post_data\', \'smyles_insert_user_product_data\', 10, 2 );
function smyles_insert_user_product_data( $data, $postarr ){
// Non-empty ID means it\'s an update (don\'t want to modify on update)
if( ! empty( $postarr[\'ID\'] ) || ! array_key_exists( \'post_type\', $postarr ) || $postarr[\'post_type\'] !== \'product\' ){
return $data;
}
$user_id = get_current_user_id();
if( $user_id ){
$short_bio = get_user_meta( $user_id, \'some_meta_key\', true );
if( ! empty( $short_bio ) ){
$short_bio = wp_kses( $short_bio, true );
$data[\'post_content\'] = wp_slash( $short_bio );
}
}
return $data;
}