Wordpress更新发布Woocommerce股票的元

时间:2018-05-09 12:02:59

标签: php mysql wordpress woocommerce

我需要将woocommerce中的所有股票重置为outofstock。或者将所有产品的库存设置为零。非此即彼。没关系。

到目前为止我已经写过了。

function clear_current_stock(){ 
    $sql = "UPDATE wp_postmeta SET meta_value = 'outofstock' WHERE meta_value = 'instock' AND meta_key = '_stock_status'";
    // run queries
    if ($wpdb->query( $sql ) === TRUE) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record";
    }
}

我已经调用了这个函数。 (只是为了测试并确保它正常工作)

   <?php clear_current_stock(); ?>

但是这个功能并没有做任何事情。请帮忙。

有一个类似的问题here

但它没有帮助我。

完成的代码需要什么。是单击调用此功能的按钮。然后将所有类型产品的帖子设置为零库存。或者是outofstock

1 个答案:

答案 0 :(得分:0)

我的答案过程。

首先,我进入MYSQL工作台并在工作台中运行查询。这向我显示选择数据库时出错。

我修复了我的sql查询,因此它在MYSQL工作台中工作。然后我继续我的功能。

我发现在我的功能中我并没有声明我的变量。

我必须先为$ wpdb声明我的变量才能在第一时间工作。其中如上所示尚未完成。

这是100%

的最终功能
// Clear Stock
function clear_current_stock(){ 
// Declare the $wpdb var
    global $wpdb;
// Run My SQL Query (My Query is setting the meta value for stock to zero)
    $wpdb->query("UPDATE wp_postmeta SET meta_value = 0 WHERE meta_key = '_stock'");
// Check if there were any errors or if my query was successful.
    if ( is_wp_error( $wpdb ) ) {
         echo $wpdb->get_error_message();
    }
    else {
         echo 'true';
    }
}

然后,您只需要在任何地方或者何时想要运行查询时调用该函数。这可以这样做。

<?php clear_current_stock(); ?>