WooCommerce - 提高简单和可变产品的价格

时间:2016-09-13 05:06:42

标签: php wordpress woocommerce cart product

我想在WooCommerce中将所有产品价格提高一些百分比。

可以使用钩子(例如:正常价格100 $ + 10%= 110 $)用于简单和可变产品

我想将所有简单和可变产品的价格提高到正常价格的10%。

如何提高价格?

由于

1 个答案:

答案 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文件中。

参考文献: