Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce-为购物车中的每个产品添加自定义价格_Php_Wordpress_Woocommerce_Cart_Product - Fatal编程技术网

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

Php WooCommerce-为购物车中的每个产品添加自定义价格,php,wordpress,woocommerce,cart,product,Php,Wordpress,Woocommerce,Cart,Product,我想用这个简单的代码更新购物车中的产品价格,添加一个自定义价格update\u post\u meta($product->id,''u regular\u price',$frame\u price\u added) 注意:我试图实现的是将此自定义价格添加到购物车中的每个产品。 我尝试通过以下方式添加$frame\u price\u: $frame_price = $res['_number_field'][0]; $frame_price_added = $product->price

我想用这个简单的代码更新购物车中的产品价格,添加一个自定义价格
update\u post\u meta($product->id,''u regular\u price',$frame\u price\u added)

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

我尝试通过以下方式添加
$frame\u price\u

$frame_price = $res['_number_field'][0];
$frame_price_added = $product->price + $frame_price;
这里的
$product->price
是来自woocomerce产品的价格,
$frame\u price
是来自我新添加的价格

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

我试过使用
update\u post\u meta($product->id,''u price',$frame\u price\u added)当页面刷新时,它会将自定义价格添加并存储到产品中,然后保存

你知道我怎样才能做到这一点吗

谢谢


编辑:还有一件事……我搜索了一个可以在“添加到购物车”上调用的函数,但没有找到任何东西,还有一个在
woocommerce\u模板\u single\u add\u-to\u购物车
上调用的动作挂钩,它有
woocommerce\u single\u product\u summary
,但没有找到任何函数

更新:适用于WooCommerce 3.0+

您可以在计算总计之前使用
woocommerce\u
钩子自定义购物车项目价格

通过这种方式,您可以在函数中将
$framed\u 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;
    }
}
或者在钩子函数中获取自定义价格(可选,取决于获取自定义价格的方式):

此代码经过测试并正常工作。

当然,这段代码会出现在活动子主题(或主题)的function.php文件或任何插件文件中


参考资料:

WooCommerce将
\u常规价格
销售价格
和销售价格的销售日期进行比较,以确定
\u价格
键。
\u价格
就是用户将支付的价格。最好的,我可以告诉你,听起来你可能想考虑。@ HelgHivivigOh我一直在阅读WordPress表单上的所有评论-我也读到了同样的内容:P很抱歉再次询问,但是我正在寻找一种方法,如果我们更新实际价格,它在CART中是正确的。所以我想的是添加一个钩子,并在结帐后更新钩子中的价格。如何从表单中获取$u价格?我不想这样static@sona你到底是什么意思/想要什么?什么形式,什么领域?
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;
    }
}