Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 - Fatal编程技术网

Php 如何将自定义字段计算为WooCommerce购物车中的额外费用?

Php 如何将自定义字段计算为WooCommerce购物车中的额外费用?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我对在WooCommerce的购物车中计数有意见。 我想为每个产品添加一个处理费字段,并戏剧性地计算购物车中的总费用。 根据我的研究,我在我的产品中创造了一个领域。 我的下一步是在我的购物车中计算这个字段。 我也在谷歌上搜索过这个问题,但我只能找到一些解决方案()来计算固定费用,而不是戏剧性的功能。 您需要的功能是获取自定义字段的值 $prod_fee = get_post_meta($item['product_id'] , '_number_field', true); 然后您可以将其

我对在WooCommerce的购物车中计数有意见。 我想为每个产品添加一个处理费字段,并戏剧性地计算购物车中的总费用。 根据我的研究,我在我的产品中创造了一个领域。

我的下一步是在我的购物车中计算这个字段。 我也在谷歌上搜索过这个问题,但我只能找到一些解决方案()来计算固定费用,而不是戏剧性的功能。


您需要的功能是获取自定义字段的值

$prod_fee = get_post_meta($item['product_id'] , '_number_field', true);

然后您可以将其累积并显示为合并费用。

您需要从产品元数据中获取产品费用,因为@Anfelipe提供了代码

$prod\u fee=get\u post\u meta($item['product\u id','u number\u field',true)

之后,您需要在中添加条件或进行计算

function add_custom_fees( WC_Cart $cart ){
    $fees = 0;
    $prod_fee = get_post_meta($item['product_id'] , '_number_field', true);
    foreach( $cart->get_cart() as $item ){
       $fees += $item[ 'quantity' ] * $prod_fee ; 
    }
    if( $fees != 0 ){
        $cart->add_fee( 'Handling fee', $fees);
    }
}

嗨,米图尔,谢谢你的回复。我已将您的示例添加到我的项目中。但这并不是发生在我的小计栏购物车里的事情。我还尝试使用另一个字段作为变量,例如“\u sale\u price”。结果是一样的。你可能知道哪里错了吗?再次感谢。嗨,米图尔,谢谢你的例子。它激励我达到我想要的功能。嗨,安费利佩,谢谢你的回复,我试过你的例子。它不起作用,而且似乎无法从产品中获得价值$prod_fee=get_post_meta($item['product_id','u number_field',true)$生产费用=5//这个例子很有效。你是如何实现这个解决方案的?@Mitul的答案是错误的,因为$item['product\u id']不在foreach的范围内,所以将$prod\u费用放在foreach块中。
$prod_fee = get_post_meta($item['product_id'] , '_number_field', true);
function add_custom_fees( WC_Cart $cart ){
    $fees = 0;
    $prod_fee = get_post_meta($item['product_id'] , '_number_field', true);
    foreach( $cart->get_cart() as $item ){
       $fees += $item[ 'quantity' ] * $prod_fee ; 
    }
    if( $fees != 0 ){
        $cart->add_fee( 'Handling fee', $fees);
    }
}