【问题标题】:Wordpress/WooCommerce set post/product to draftWordpress/WooCommerce 将帖子/产品设置为草稿
【发布时间】:2014-04-26 00:15:39
【问题描述】:

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

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 );
        }
    }
}

【问题讨论】:

    标签: wordpress woocommerce visibility hidden status


    【解决方案1】:

    只需使用wp_update_post

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

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

    【讨论】:

    • 试过但没用。它仍然将可见性设置为隐藏,但没有将其状态设置为草稿。可能发生这种情况是因为它是 woo 商务产品(不确定 woo 商务产品是否与 wordpress 帖子相同?)。
    • 你想在哪里使用它?请粘贴更大的 sn-p 代码。如果使用正确,上面的 sn-p 应该可以工作。
    • 我需要你告诉我你是如何使用我给你的代码的。请更新您的问题,包括那个。
    • 嗨内森!我在使用时用函数更新了代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多