用其他自定义字段填充空自定义字段

时间:2014-08-30 作者:user2506619

我有一个产品列表网站,所有产品都是从csv上传的。我有一个名为“old\\u price”和“new\\u price”的两个自定义字段。

有时没有折扣(new\\u price),因此字段为空。如果“new\\u price”为空,我想将“old\\u price”的值存储在“new\\u price”中。

its important that it get stored in database automatically, No alternate Solution please.

提前谢谢。

1 个回复
最合适的回答,由SO网友:Stubbies 整理而成

假设您的产品是定制贴子,您可以这样做:

add_action(\'wp_insert_post\', \'do_stuff\'); // when product is created
add_action(\'save_post\', \'do_stuff\' ); // on product update
   function do_stuff( $post_id ) {

       // Making sure this runs only for products
       $slug = \'product_post\';
       if ( $slug != $_POST[\'post_type\'] ) {
          return;
       }

       if (!get_post_meta( $post_id, \'new_price\', true )){
          $old_price = get_post_meta( $post_id, \'old_price\', true );
          update_post_meta($post_id, \'new_price\', $old_price);    
       }

}
更新旧产品让我们更新50个。

// url: site.com/test-page?offset=0, change this by 50 (0,50,100,150,200,250...)

$offset = $_GET[\'offset\']; // start with 0
$args = [
         \'offset\'         => $offset,
         \'posts_per_page\' => 50, 
         \'post_type\'      => \'product_post\'
        ];

$the_query = new WP_Query( $args );
if($the_query->posts){

   foreach($the_query->posts as $product){

      if (!get_post_meta( $product->ID, \'new_price\', true )){
         $old_price = get_post_meta( $product->ID, \'old_price\', true );
         update_post_meta($product->ID, \'new_price\', $old_price);    
      }

   }

}else{
   echo \'Done!\';
}

结束

相关推荐

If is_single in functions.php

我希望删除wpautop筛选器仅对我博客中的帖子起作用。因为在某些页面,我需要autop,而在某些页面,我需要它不在那里。我使用以下规则,这是在我的主题函数中。php:remove_filter( \'the_content\', \'wpautop\' ); 因为我只想在博客上看到它,所以我在考虑if语句,我在Wordpress中搜索了条件标记页面,发现我可以使用is\\u single。但它不起作用。这是我现在使用的代码。if(is_single() ){ remove_f