WordPress:如何在保存产品 woocommerce 之前添加新的 post 元数据
WordPress : how add new post meta before saving product woocommerce
我有一个 api 来自另一个 wocommerce 网站,并从我的产品 sku 中获取一些信息
创建新产品后如何将此信息添加到 post 元数据?
我想当我创建一个产品时,信息与 api 和产品 sku 一起保存到 post meta.
我找到了这个钩子,但我认为它不起作用
<?PHP
function my_product_att( $sku ) {
// my api codes and take information and use
add_post_meta('product_id','key','value');
// i haven't problem here i just need Appropriate hook
}
add_action( 'save_post', 'my_product_att' ); // this hook not work for woocommerce
Woocommerce 产品是 wordPress 帖子。您可以使用像 save_post
& $post_id
这样的 wordpress 钩子作为它的参数。你传递的 $sku
这是错误的。
add_action( 'save_post', 'wpse_110037_new_posts' );
function wpse_110037_new_posts($post_id){
$post_type = get_post_type($post_id);
if($post_type == 'products') {
add_post_meta($post_id,'key','value');
}
}
试试下面的代码。请注意,在代码中,$unique 是 true
或 false
,这取决于元值是否应该是唯一的。
add_action('transition_post_status', 'product_created_function', 10, 3);
function product_created_function($newstatus, $oldstatus, $post) {
if($oldstatus != 'publish' && $newstatus == 'publish' && !empty($post->ID) && in_array( $post->post_type, array( 'product') ) ) {
add_post_meta( $post->ID, $key, $value,$unique );
}
}
add_action( 'save_post', 'prowp_save_meta_boxdddd' );
function prowp_save_meta_boxdddd( $post_id ) {
global $wpdb;
$table_prefix = $wpdb->prefix;
$tablename = $table_prefix.'postmeta';
$wpdb->query($wpdb->prepare('UPDATE '.$tablename.' SET meta_value="test" WHERE post_id='.$post_id));
}
我有一个 api 来自另一个 wocommerce 网站,并从我的产品 sku 中获取一些信息 创建新产品后如何将此信息添加到 post 元数据? 我想当我创建一个产品时,信息与 api 和产品 sku 一起保存到 post meta.
我找到了这个钩子,但我认为它不起作用
<?PHP
function my_product_att( $sku ) {
// my api codes and take information and use
add_post_meta('product_id','key','value');
// i haven't problem here i just need Appropriate hook
}
add_action( 'save_post', 'my_product_att' ); // this hook not work for woocommerce
Woocommerce 产品是 wordPress 帖子。您可以使用像 save_post
& $post_id
这样的 wordpress 钩子作为它的参数。你传递的 $sku
这是错误的。
add_action( 'save_post', 'wpse_110037_new_posts' );
function wpse_110037_new_posts($post_id){
$post_type = get_post_type($post_id);
if($post_type == 'products') {
add_post_meta($post_id,'key','value');
}
}
试试下面的代码。请注意,在代码中,$unique 是 true
或 false
,这取决于元值是否应该是唯一的。
add_action('transition_post_status', 'product_created_function', 10, 3);
function product_created_function($newstatus, $oldstatus, $post) {
if($oldstatus != 'publish' && $newstatus == 'publish' && !empty($post->ID) && in_array( $post->post_type, array( 'product') ) ) {
add_post_meta( $post->ID, $key, $value,$unique );
}
}
add_action( 'save_post', 'prowp_save_meta_boxdddd' );
function prowp_save_meta_boxdddd( $post_id ) {
global $wpdb;
$table_prefix = $wpdb->prefix;
$tablename = $table_prefix.'postmeta';
$wpdb->query($wpdb->prepare('UPDATE '.$tablename.' SET meta_value="test" WHERE post_id='.$post_id));
}