【问题标题】:WooCommerce - Sum of product_id valuesWooCommerce - product_id 值的总和
【发布时间】:2013-08-28 14:01:31
【问题描述】:

我正在尝试获取 WooCommerce 中分配给 BACS 支付网关 ID 的特定 product_id 值的总和。我有一个带有产品 ID 的数组,我正在使用 array_sum 来获取产品值的总和,但这不能正常工作。如果有人能带领我朝着更好的方向前进,将不胜感激。

add_action('woocommerce_before_cart_total', 'invoice_price');

<?php
$available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways();
$product = new WC_Product( get_the_ID() );
$invoiceItems = array(522, 550, 523);
$formatted_total = woocommerce_price( $this->order_total );

function invoice_price( $available_gateways ) {
  if ( $available_gateways == $gateways['bacs'] ) {
    foreach($product == in_array($values['product_id'])) {
         echo array_sum($invoiceItems);
    }
    $invoiceTotal = $formatted_total - $invoiceItems;
}
echo $invoiceTotal();
}
?>

【问题讨论】:

  • 尝试使用echo $invoiceTotal; 而不是echo $invoiceTotal();,因为invoiceTotal 不是函数。 (我打算将其发布为答案,但我没有资源来全面测试您的代码)。
  • 你也可以试试$invoiceTotal = $formatted_total - array_sum($invoiceItems); 然后echo $invoiceTotal; ---这在一定程度上对我的测试有用。

标签: php wordpress woocommerce


【解决方案1】:

考虑以下几点:

拥有 100、200 和 300 的数组加起来就是 600。

$formatted_total = 5000;

我用$invoiceItems 数组减去$formatted_total,5000 减去 600 等于 4400。

<?php

$invoiceItems = array(100, 200, 300);

$formatted_total = 5000;

$invoiceTotal = $formatted_total - array_sum($invoiceItems);

echo $invoiceTotal; // will echo 4400

?>

echo $invoiceTotal(); 将呈现无效,因为您试图回显无效函数。


如果我要使用以下内容:

$invoiceTotal = $formatted_total - $invoiceItems;

会产生如下错误:

致命错误:不支持的操作数类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2020-04-10
    • 2018-01-11
    • 1970-01-01
    • 2018-07-29
    相关资源
    最近更新 更多