我正在开发一个WordPress插件,并且遇到了一个小小的障碍。我正在研究与PayPal的IPN交互的脚本的一部分。我有一个位于插件目录中的ipn.php文件,该文件收集来自PayPal的响应并验证所有交易详情。 这部分工作正常,但第二部分是我必须将变量插入WordPress数据库以标记购买成功。 由于$ wpdb在ipn.php文件中不可用,我必须将数据传递给插件的核心进行处理。将PHP变量从一个插件文件传递给另一个WordPress
我很乐意为此提供其他解决方案,非常感谢您的帮助。谢谢!
下面是一个例子,这个文件将被用于$ .load()来填充区域在管理面板
<?php
global $wpdb;
$promos = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix ."voltbam_promocodes");
foreach($promos as $promo){
?>
ID: <?php echo $promo->id ?><br />
Name: <?php echo $promo->name ?><br />
Value: <?php echo $promo->value ?><br />
Type: <?php echo $promo->type ?><br /><br />
<?
}
?>
这里是输出
Fatal error: Call to a member function get_results() on a non-object in (filename) on line 3
不知道,但它听起来像你正在做出一些不正确的假设。你是什么意思*由于$ wpdb在ipn.php文件中不可用,... * ??我的理解是,'$ wpdb'在wordpress中是全局的,这意味着为了在函数中使用它,您只需要在函数顶部插入语句'global $ wpdb;'。对?当然,只有在初始化后才需要引用该变量,但这不应该成为问题。这个问题的真正标题应该是:“我如何在插件中修改WP数据库?”要做到这一点,请参考全局'$ wpdb'。 – Cheeso 2012-07-15 03:11:23
这似乎并没有工作。我将用我正在使用的代码和输出来更新我的文章。 – 2012-07-15 03:42:44
这听起来像是他设置了PayPal来为IPN处理调用'ipn.php',所以即使该文件位于插件目录中,也不会通过WordPress进行。这就是为什么$ wpdb不可用。 – 2012-07-15 14:19:33