2014-03-19 60 views
0

我有一个插件在特定的日期(称为WooCommerce有限的交易)隐藏产品。该插件将产品的可见性设置为隐藏。我想要做的就是将产品设置为草稿,因为如果隐藏可见性,产品仍然显示在搜索结果中并且可以直接访问。您可以在下面找到将其设置为“隐藏”的插件代码。是否可以添加一条也将其设置为“草稿”的线?WordPress的/ WooCommerce设置后/产品草案

update_post_meta($post->ID, '_visibility', 'hidden'); 

例如(我知道这是行不通的)类似这样的东西:

update_post_meta($post->ID, 'status', 'draft'); 

功能(更新)

public function check_single() 
{ 
    global $post; 

    if ($this->is_enabled($post->id) && !$this->is_available($post->id)) { 

     // Set visibility to hidden 
     $hide = get_option('tp_hide_expired'); 
     if ($hide == 'yes') { 
      update_post_meta($post->ID, '_visibility', 'hidden'); 
      wp_update_post(array(
       'ID' => $post->ID, 
        'post_status' => 'draft', 
      )); 
     } 

     // Remove the add to cart button 
     $disable = get_option('tp_disable_cart'); 
     if ($disable == 'yes') { 
      remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); 
      add_action('woocommerce_single_product_summary', array('WC_Limited_Deals', 'custom_add_to_cart'), 30); 
     } 
    } 
} 

回答

1

只需使用wp_update_post

http://codex.wordpress.org/Function_Reference/wp_update_post

wp_update_post(array(
    'ID' => $post->ID, 
    'post_status' => 'draft', 
)); 
+0

尝试过,但没有奏效。它仍然将隐藏的可见性设置为隐藏,但它没有将其状态设置为草稿。也许会发生这种情况,因为它是一个有趣的商业产品(不知道如果woo商业产品与WordPress的帖子是一样的)。 – manosim

+0

你在哪里试图使用这个?请粘贴更大的代码片段。如果使用正确,上面的代码片段应该可以工作。 –

+0

对不起,延迟回复。用代码更新。 – manosim