Wordpress / WooCommerce将帖子/产品设置为草稿

时间:2014-03-19 15:47:28

标签: wordpress woocommerce visibility hidden status

我有一个用于在特定日期隐藏产品的插件(称为WooCommerce Limited Deals)。此插件将产品的可见性设置为隐藏。我想要做的是将产品设置为草稿,因为如果隐藏可见性,产品仍会显示在搜索结果中并且可以直接访问。您可以在下面找到将其设置为“隐藏”的插件代码。是否可以添加一行,并将其设置为' draft'?

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 个答案:

答案 0 :(得分:1)

只需使用wp_update_post

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

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