我正在開發一個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