在WooCommerce 3中以编程方式设置产品销售价格

马库斯·克里斯蒂安森

我在Woocommerce商店中开设了各种产品类别。

我想对所有属于杜鹃产品类别的产品都享受20%的折扣

目前,我要实现的所有目标是在我的functions.php中设置销售价格

它尝试如下:

    /* 
     * For a specific date, 20% off all products with product category as cuckoo clock.
     */
    function cuckoo_minus_twenty($sale_price, $product) { 
        $sale_price = $product->get_price() * 0.8;
        return $sale_price;
    }; 

    // add the action 
    add_filter( 'woocommerce_get_sale_price', 'cuckoo_minus_twenty', 10, 2 ); 

如果我在计算后将var_dump的结果转储为$ sale_price的结果,则会得到正确的答案,但是前端的价格显示会剔除正常价格并将销售价格显示为正常价格。

在此处输入图片说明

是否可以使用挂钩/过滤器来实现此目的?

我还尝试通过以下方式设置销售价格:

$product->set_sale_price($sale_price); 

无济于事。

LoicTheAztec

woocommerce_get_sale_price自WooCommerce 3起,该钩子已被弃用,并由代替woocommerce_product_get_sale_price

产品显示的价格也会被缓存。销售价格处于活动状态时,常规价格也处于活动状态。

尝试以下方法:

// Generating dynamically the product "regular price"
add_filter( 'woocommerce_product_get_regular_price', 'custom_dynamic_regular_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_regular_price', 'custom_dynamic_regular_price', 10, 2 );
function custom_dynamic_regular_price( $regular_price, $product ) {
    if( empty($regular_price) || $regular_price == 0 )
        return $product->get_price();
    else
        return $regular_price;
}


// Generating dynamically the product "sale price"
add_filter( 'woocommerce_product_get_sale_price', 'custom_dynamic_sale_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'custom_dynamic_sale_price', 10, 2 );
function custom_dynamic_sale_price( $sale_price, $product ) {
    $rate = 0.8;
    if( empty($sale_price) || $sale_price == 0 )
        return $product->get_regular_price() * $rate;
    else
        return $sale_price;
};

// Displayed formatted regular price + sale price
add_filter( 'woocommerce_get_price_html', 'custom_dynamic_sale_price_html', 20, 2 );
function custom_dynamic_sale_price_html( $price_html, $product ) {
    if( $product->is_type('variable') ) return $price_html;

    $price_html = wc_format_sale_price( wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ), wc_get_price_to_display(  $product, array( 'price' => $product->get_sale_price() ) ) ) . $product->get_price_suffix();

    return $price_html;
}

代码进入您的活动子主题(活动主题)的function.php文件中。

经过测试,可以在单个产品,商店,产品类别和标签归档页面上使用。

继续:
通过编程设置产品销售价格后错误的Woocommerce购物车项目价格

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据URL变量启用或禁用WooCommerce产品销售价格

在Woocommerce中用常规价格代替销售价格

如果没有销售价格,如何显示woocommerce销售价格或常规价格

将WooCommerce产品的销售价格复制到正常价格并重置销售价格

Woocommerce中特定产品的动态销售价格显示

如果销售价格满足WooCommerce中的变化,请添加“销售”徽章

在WooCommerce中动态设置产品变化自定义计算价格

更新Woocommerce可变产品的所有产品差异销售价格

根据Woocommerce中的自定义字段有条件地设置产品销售价格

在woocommerce中根据其尺寸范围(区域)设置产品价格

在WooCommerce 3中以编程方式仅设置特定产品的销售价格

设置购物车商品仅针对Woocommerce中的特定商品生成的销售价格

在Woocommerce中将自定义“销售价格”列添加到管理产品列表

在Woocommerce Single product中添加带有销售价格后的销售日期的自定义文本

在WooCommerce中显示正常价格之前的销售价格

通过每次销售/订购提高产品的销售价格

以编程方式销售价格产品的Woocommerce问题

如何使用自定义产品属性值更新woocommerce销售价格?

Woocommerce产品报废常规和销售价格未提取

在WooCommerce结帐问题中显示产品销售价格

从WooCommerce管理中的所有产品中删除销售价格

修改Woocommerce查询以仅显示具有销售价格的产品

如何在woocommerce的购物车页面中同时显示总订单销售价格和常规价格(或总折扣价格)

在正常价格之前显示销售价格(WooCommerce)

Woocommerce中的销售倒计时后在产品编辑页面自动清除销售价格

以编程方式导入 WooCommerce 产品时如何设置产品品牌?

如何编写算法来查找每周产品销售价格的利润

Woocommerce如何替换缺货产品的销售价格但保持正常价格?

应用优惠券时,将 WooCommerce 购物车中的产品销售价格更改为正常价格,但排除某些类别