php - 从外部向 WordPress 插件的 PHP 文件添加函数(允许轻松更新版本)

标签 php wordpress function

我有一个真正的大脑发痒者,我已经与它搏斗了几天。

我正在为某人(在 http://www.lydiala.com/ )创建一个 WordPress 网站,并使用简单的 WordPress Paypal 购物车插件

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

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

我在 wp_shopping_cart.php 中采用了以下现有功能:

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,该文件已经已加载(“无法重新声明”等)。

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

最佳答案

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

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();

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

让我知道。

关于php - 从外部向 WordPress 插件的 PHP 文件添加函数(允许轻松更新版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066291/

相关文章:

php - 如何使用 PHP 计算非常大的数据集中的出现次数

php - 页脚中的 float /固定div

php - 错误 : Object of class stdClass could not be converted to string -- implode() -- php

c# - 我应该在 .NET 项目中的什么地方放置杂项函数?

Scala:使用函数作为第一类对象的问题

c - 将文件内容传递到内存时出现错误

php - 可扩展的基于规则的访问模式

php - 使用password_hash和password_verify

php - 需要一个不错的jQuery/AJAX教程(与表单上传有关)

php - 如何在 WordPress 中编辑单个页面