Ошибка в электронном письме клиента WooCommerce - неверно вызван метод payment_method - PullRequest
1 голос
/ 26 апреля 2020

Я настроил собственный способ оплаты для WooCommerce, у меня нет ошибки PHP во время процесса оплаты, но в полученном от клиента электронном письме есть эта ошибка:

Примечание: payment_method был называется неправильно. Свойства заказа не должны быть доступны напрямую. Backtrace: edit_post, wp_update_post, wp_insert_post, do_action ( 'save_post'), WP_Hook-> do_action, WP_Hook-> apply_filters, WC_Admin_Meta_Boxes-> save_meta_boxes, do_action ( 'woocommerce_process_shop_order_meta'), WP_Hook-> do_action, WP_Hook-> apply_filters, WC_Meta_Box_Order_Data :: save, WC_Order-> save, WC_Order-> status_transition, do_action ('woocommerce_order_status_on-hold_to_processing'), WP_Hook-> do_action, WP_Hook-> apply_transactional____j_t_d________id___________id_______re_________> WP_Hook-> apply_filters, WC_Email_Customer_Processing_Order-> триггер, WC_Email-> get_content, WC_Email_Customer_Processing_Order-> get_content_ html, wc_get_template_ html, шаблоны wc_get_template / wise для клиентов / обработки заказа / электронной почты / 10 / e-mail * '), do_action (' woocommerce_email_order_details '), WP_Hook-> do_action, WP_Hook-> приложение в /home/username/public_html/site/wp-includes/functions.php в строке 51 67

И это код для содержимого электронной почты, полный код доступен здесь :

public function email_instructions( $order, $sent_to_admin, $plain_text = false ) {

    if ( $this->instructions && ! $sent_to_admin && $this->id === $order->get_payment_method && $order->has_status( 'on-hold' ) ) {
        echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL;
    }
}

Я изменил $order->payment_method на $order->get_payment_method, но по-прежнему получаю сообщение об ошибке.

Не могли бы вы мне помочь отладить ее?

1 Ответ

1 голос
/ 26 апреля 2020
public function email_instructions( $order, $sent_to_admin, $plain_text = false ) {

    if ( $this->instructions && ! $sent_to_admin && $this->id === $order->get_payment_method() && $order->has_status( 'on-hold' ) ) {
        echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL;
    }
}

Пожалуйста, попробуйте изменить, как это. get_payment_method()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...