3

我有一个真正的大脑痒痒我已经摔跤了几天。

我正在为某人创建一个 WordPress 网站(位于http://www.lydiala.com/),并使用Simple WordPress Paypal Shopping Cart Plugin

我想在我的header.php文件 的右上角显示购物车中的商品总数。

我想出了一个成功返回这个数字的函数,并将它添加到插件的主 PHP 文件中/wp-content/plugins/wordpress-simple-paypal-shopping-cart/wp_shopping_cart.php(与所有其他函数一起)。

我在wp_shopping_cart.php中使用了以下 EXISTING 函数:

function simple_cart_total() {  
    $grand_total = 0;   
    foreach ((array)$_SESSION['simpleCart'] as $item){      
        $total += $item['price'] * $item['quantity'];       
        $item_total_shipping += $item['shipping'] * $item['quantity'];  
    }   
    $grand_total = $total + $item_total_shipping;
    return number_format($grand_total,2); 
}

然后我将它复制,重命名并更改如下:

function total_items() {    
    $grand_total = 0;   
    foreach ((array)$_SESSION['simpleCart'] as $item){      
         $total += $item['quantity'];   
    }
$grand_total = $total;  
    return number_format($grand_total); 
}

现在,在我的header.php中,我有:

echo total_items();

效果非常好!

但是,以后插件更新的时候,这个新增的功能会在wp_shopping_cart.php被新版本覆盖的时候丢失。

有没有办法将我的自定义函数附加到这个外部.php文件?我已经尝试了一些方法,但大多数都不起作用,因为它们尝试加载已经加载的 wp_shopping_cart.php (“无法重新声明”等)。

如果情况变得更糟,我总是可以告诉客户在这个插件的更新可用时给我打电话。

4

2 回答 2

2

我建议将其添加到不同的插件中。

paypall-totals.php在你的wp-content/plugins(不要忘记在 wp-admin 中激活)

/*
plugin-name: paypall totals
description: adds a function to show paypall totals
pluginURI: http://stackoverflow.com/q/17066291/933065
*/

function paypall_total_items() { 
  session_start();   
  $grand_total = 0;   
  foreach ((array)$_SESSION['simpleCart'] as $item){      
    $total += $item['quantity'];   
  }
  $grand_total = $total;  
  return number_format($grand_total); 
}

因为它只获取它的数据,$_SESSION所以你把这个函数放在哪里并不重要。它也适用于您的主题functions.php

还要调整header.php中的代码:echo paypall_total_items();

只需将paypal插件恢复为原始代码即可。

让我知道。

于 2013-06-12T13:34:37.273 回答
0

对不起,我现在不能评论是,应该拆分成一个临时答案。
我认为你不应该写插件,你应该把这段代码放在你主题的function.php中。
并检查插件“WordPress Simple Paypal 购物车插件”。是否已通过以下代码安装:

if (function_exists ("simple_cart_total")) {...}
于 2013-06-12T20:43:52.420 回答