我正在与Woocommerce一起为电子商务编写脚本,该脚本读取csv并设置产品的新价格/销售价格。以下变量是一个示例。
使用此代码,我可以设置产品的价格和销售价格,但是当销售数据过期时,价格不会恢复为正常价格。
$price = '40';
$sale_price = array();
$sale_price[1] = '20';
$sale_price[2] = '2020-02-10';
$sale_price[3] = '2020-02-11';
update_post_meta( $product_id, '_price', $price );
update_post_meta( $product_id, '_regular_price', $price);
if( !empty($sale_price) ){
update_post_meta( $product_id, '_price', $sale_price[1] );
update_post_meta( $product_id, '_sale_price', $sale_price[1] );
update_post_meta( $product_id, '_sale_price_dates_from', $sale_price[2] );
update_post_meta( $product_id, '_sale_price_dates_to', $sale_price[3] );
}
如果我未设置'_price'post_meta,则看不到正常价格或销售价格。
您应该这样进行:
$product = wc_get_product($product_id);
$price = '40';
$sale_price = array();
$sale_price[0] = '20';
$sale_price[1] = date( 'Y-m-d 00:00:00', strtotime('2020-02-10'));
$sale_price[2] = date( 'Y-m-d 23:59:59', strtotime('2020-02-11'));
if ( !is_wp_error( $product ) ) {
$product->set_price( $price );
$product->set_regular_price( $price );
if( !empty($sale_price) ){
$product->set_price( $sale_price[0] );
$product->set_sale_price( $sale_price[0] );
$product->set_date_on_sale_from( $sale_price[1] );
$product->set_date_on_sale_to( $sale_price[2] );
}
$product->save(); // save the product
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句