我有一个用于在特定日期隐藏产品的插件(称为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 );
}
}
}
答案 0 :(得分:1)
只需使用wp_update_post
。
http://codex.wordpress.org/Function_Reference/wp_update_post
wp_update_post( array(
'ID' => $post->ID,
'post_status' => 'draft',
) );