我想在WooCommerce中将所有产品价格提高一些百分比。
可以使用钩子(例如:正常价格100 $ + 10%= 110 $)用于简单和可变产品。
我想将所有简单和可变产品的价格提高到正常价格的10%。
如何提高价格?
由于
答案 0 :(得分:1)
有2个案例
案例1 - 所有产品(批量增加产品价格百分比)
此自定义功能会按照可以在此代码段末尾设置的百分比更新所有产品价格。这将完成一次。
所有产品价格,正常价格和促销价格都将更新......
如果您以后需要再次执行此操作,请参阅此代码段(如下所示)之后的过程。
此脚本仅适用于已登录的管理员用户。
function bulk_update_product_prices($percent=0){
if(get_option( 'wc_bulk_updated_prices' ) != 'yes' && is_admin() ) {
// prevent updating prices more than once
add_option( 'wc_bulk_updated_prices' );
$args = array(
// WC product post types
'post_type' => array('product', 'product_variation'),
// all posts
'numberposts' => -1,
'post_status' => 'publish',
);
if($percent == 0) return;
echo 'bla bla';
$percent = 1 . '.' . $percent;
$shop_products = get_posts( $args );
foreach( $shop_products as $item){
$meta_data = get_post_meta($item->ID);
if (!empty($meta_data['_regular_price'])) {
$regular_price = $meta_data['_regular_price'][0] * $percent;
update_post_meta($item->ID, '_regular_price', $regular_price);
}
if (!empty($meta_data['_sale_price'])) {
$sale_price = $meta_data['_sale_price'][0] * $percent;
update_post_meta($item->ID, '_sale_price', $sale_price);
}
if (!empty($meta_data['_price'])) {
$price = $meta_data['_price'][0] * $percent;
update_post_meta($item->ID, '_price', $price);
}
}
// Once done an option is set to yes to prevent multiple updates.
update_option( 'wc_bulk_updated_prices', 'yes');
}
}
// set your percentage (if you want 20%, so you put 20)
bulk_update_product_prices(20); // <== == == == == == Here set your percent value
此代码位于您的活动子主题(或主题)或任何插件文件的function.php文件中。
现在,浏览您网站的一个页面(以管理员身份登录)。你完成了。
之后,您可以删除此代码。
如果您需要再次使用此脚本,则需要执行以下4个步骤。在上面的代码段中:
步骤1 - 重新设定安全选项 - 替换为:
// set your percentage (here the percentage is 20%, so we put 20) bulk_update_product_prices(20);
由此:
// Do it again later (Resetting the script) update_option( 'wc_bulk_updated_prices', 'no');
第2步 - 浏览网站页面(以管理员身份登录):
第3步 - 替换回来:
// Do it again later (Resetting the script) update_option( 'wc_bulk_updated_prices', 'no');
由此:
// set your percentage (here the percentage is 20%, so we put 20) bulk_update_product_prices(20);
第4步 - **更新价格 - 浏览网站页面(以管理员身份登录)
此代码经过测试并有效。
案例2 - 购物车(增加购物车商品价格)
您可以使用 woocommerce_before_calculate_totals
挂钩来自定义购物车商品价格。
在下面的代码中,我为购物车中的每件商品添加了10%。
适用于各种产品类型。
这是代码:
add_action( 'woocommerce_before_calculate_totals', 'add_custom_percentage', 10 );
function add_custom_percentage( $cart_object ) {
// set your percent (here 10 is 10%)
$percent = 10;
foreach ( $cart_object->cart_contents as $item ) {
$item['data']->price *= 1 . '.' . $percent;
}
}
此代码经过测试并正常运行。
当然,此代码会出现在您的活动子主题(或主题)或任何插件文件的function.php文件中。
参考文献: