【发布时间】:2016-03-23 12:50:50
【问题描述】:
我制作了一个 wordpress 插件。它使用信用卡处理新的支付网关。交易成功后,我关闭了订单,但无法发送电子邮件。我什么都试过了。我尝试在初始化时调用邮件程序,但在 error.log 上失败:
PHP 致命错误:调用成员函数 get_order_number() on 布尔输入 ....../wp-content/plugins/woocommerce/includes/emails/class-wc-email-customer-processing-order.php 第 58 行
我试图在初始化时创建一个new WC_simplepay();,它失败了,找不到类。
我尝试使用新函数在类中发送相同的邮件,并使用 $this->functionname(); 从构造函数中调用它它可以工作,邮件已发送,但支付提供商(或我)无法从 url 调用它(这就是为什么我检查请求参数),因为该类仅在您处于结帐页面时加载。
我尝试了全局 $woocommerce ... 等解决方案,但在 init 部分也没有工作,只在类内工作。
插件代码的开始:
add_action('plugins_loaded', 'woocommerce_simplepay_init', 0);
function woocommerce_simplepay_init(){
if(!class_exists('WC_Payment_Gateway')) return;
if ($_REQUEST['REFNOEXT']!='')
{
/* .... here are some code regarding the gateway provider ,logging, etc... fully working */
$order_id = explode('_',$_REQUEST['REFNOEXT']);
$order = new WC_Order($order_id[0]);
$order->update_status('processing');
WC()->mailer()->emails['WC_Email_Customer_Processing_Order']->trigger($order_id[0]); // this is generating the error
}
class WC_simplepay extends WC_Payment_Gateway{
public function __construct(){
...
那么基本上我如何才能关闭订单,向客户发送电子邮件并使用远程 URL 调用处理此类提供者的事情?
【问题讨论】:
标签: php wordpress email woocommerce payment-gateway