0

我正在为 WooCommerce 编写一个插件,一切正常,但是当我在 webhook 中更改更新时,我在电子邮件中收到通知错误,如果我更新处理付款功能的状态,这不会发生。

即使出现此通知错误,插件也会正确更新状态。

这就是我在 webhook 中更改订单状态的方式,我做错了什么吗?

public function webhook() {
    $result = sanitize_text_field($_GET['success']);
    $transaction_id = sanitize_text_field($_GET['transaction_id']);
    $public_transaction_commerce_id = sanitize_text_field($_GET['public_transaction_commerce_id']);

    if($result == 'true')
    {
        $order = wc_get_order($public_transaction_commerce_id);

        $order->update_status( 'completed', 'Pago Confirmado TXID: '.$transaction_id );

        WC()->cart->empty_cart();

        return wp_redirect($this->get_return_url( $order));
    }
    else
    {
        wc_add_notice('El pago no pudo ser procesado, verifique su pedido e intente nuevamente.', 'error' );
        return wp_redirect(wc_get_cart_url());
    }

}

注意:payment_method ha sido llamada de forma wronga。不应直接访问订单属性。回溯:require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, WC_API->handle_api_requests, do_action ('woocommerce_api_glufcopayments'), WP_Hook->do_action, WP_Hook->apply_filters, WC_GlufcoPayments_Gateway->webhook, WC_Order->update_status, WC_Order->save, WC_Order->status_transition, do_action('woocommerce_order_status_completed'), WP_Hook->do_action, WP_H >apply_filters, WC_Emails::send_transactional_email, do_action_ref_array('woocommerce_order_status_completed_notification'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Email_Customer_Completed_Order->

电子邮件错误

4

1 回答 1

0

插件没有问题,通知显示是因为我处于调试模式,所以我将 de wp-config 编辑为:define('WP_DEBUG', false); 它解决了这个问题。

于 2021-01-27T16:05:07.853 回答