gpt4 book ai didi

php - WooCommerce - 为购物车中的每个产品添加自定义价格

转载 作者:行者123 更新时间:2023-12-05 05:22:55 26 4
gpt4 key购买 nike

我想使用这段简单的代码更新在购物车中添加自定义价格的产品的价格 update_post_meta( $product->id, '_regular_price', $frame_price_added); .

注意:我想要实现的是将此自定义价格添加到购物车中的每个产品。

我尝试得到 $frame_price_added这样:

$frame_price = $res['_number_field'][0];
$frame_price_added = $product->price + $frame_price;

在这里$product->price价格来自 woocomerce 产品和 $frame_price来 self 新添加的价格。

我想知道如何将这个新价格关联到购物车,因为它不起作用。

我试过使用 update_post_meta( $product->id, '_price', $frame_price_added);当页面刷新时,它会将自定义价格添加并存储到产品中,并保存。

关于如何正确实现此目标的任何想法?

谢谢。


Edit: One more thing… I have searched a function that can being called on add to cart and i didn't find any thing, and also an action hook being called on woocommerce_template_single_add_to_cart which had woocommerce_single_product_summary but it didn't find any function.

最佳答案

Update: For WooCommerce 3.0+ Change cart item prices in WooCommerce version 3.0

您可以使用 woocommerce_before_calculate_totals Hook 来自定义您的购物车商品价格。

您可以通过这种方式在您的函数中将 $framed_price 变量定义为全局变量。

这是代码:

// getting your additional price outside the function (making any conditional calculations) 
$framed_price = 20;

add_action( 'woocommerce_before_calculate_totals', 'add_custom_total_price', 10 );
function add_custom_total_price( $cart_object ) {

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;

global $framed_price;

foreach ( $cart_object->get_cart() as $key => $value ) {
$value['data']->price += $framed_price;
}
}

或者在 Hook 函数中获取您的自定义价格(可选,取决于您获取自定义价格的方式):

add_action( 'woocommerce_before_calculate_totals', 'add_custom_total_price', 10 );
function add_custom_total_price( $cart_object ) {

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;

$framed_price = 20;

foreach ( $cart_object->get_cart() as $key => $value ) {
$value['data']->price += $framed_price;
}
}

此代码已经过测试并且可以正常工作。

自然地,此代码会出现在您的事件子主题(或主题)或任何插件文件中的 function.php 文件中。

引用:WooCommerce Cart - Dynamic Price variable pass into custom price hook

关于php - WooCommerce - 为购物车中的每个产品添加自定义价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39256362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com