繁体   English   中英

将PHP变量从一个插件文件传递到另一个WordPress

[英]Pass PHP Variables from one plugin file to another WordPress

我正在使用WordPress插件,遇到了一些障碍。 我正在处理与PayPal IPN交互的脚本的一部分。 我在插件目录中有一个ipn.php文件,该文件收集来自PayPal的响应并验证所有交易明细。 那部分工作正常,但是第二部分是我必须将变量插入WordPress数据库以标记购买成功。 由于$ wpdb在ipn.php文件中不可用,因此我必须将数据传递到插件的核心进行处理。

我愿意就此提供其他解决方案,非常感谢您的帮助。 谢谢!

这是一个示例,此文件将用于$ .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

要求../../../wp-load.php将带WordPress核心,并允许您访问$ wpdb全局变量。 通常这是您上方的三个目录,但是如果您的脚本在另一个子目录中,则可能会更多。

如果您使用的是多站点安装,则在需要wp-load.php之前,请确保$ _SERVER ['HTTP_HOST']与您要访问的WordPress网站的URL匹配。

在我自己的设置中,所有IPN处理代码都在我的插件中。 我有一个在需要时调用它的简码。

我创建了一个自定义页面模板,该模板除了基本的发布循环之外,几乎除去了所有其他内容。 此页面永远不会显示给用户,因此任何面向显示的内容都无关紧要。 然后,我基于该模板创建了一个名为“ ipnhandler”的页面,其中仅包含短代码。

我已将此页面设置为PayPal的IPN处理程序。 因为它是常规页面,所以没有指向WordPress文件夹或类似内容的链接。 只是这个:

http://www.mysite.com/ipnhandler

当PayPal调用此页面时,Wordpress会看到简码并调用我的插件,该插件将进行所需的IPN处理。

将您的ajax请求提交到wp-admin/admin-ajax.phpinclude 'wp-load.php'; 我个人建议admin-ajax.php 请参阅插件中的AJAX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM