Не получается принять данные из wc_get_order($order_id);

95
09 января 2022, 16:30

Нужно собрать данные заказа после его отправки, но выдает ошибку

Fatal error: Uncaught Error: Call to a member function get_data() on null

Я так понимаю, дело в том, что не принимается $order_id созданного заказа. Прошу помочь.

class sendWaybill {
 private $order;
 public function __construct() {
  $this->order = wc_get_order($order_id);
 }
 private function createOrderFields() {
  $order_fields = [];
  $order_data = $this->order->get_data();
  $payment_method = $order_data['payment_method'];
  $order_fields += [
   'payment_method' => $payment_method
  ]
  return $order_fields;
 }
 private function createWaybill() {
  $waybill = [];
  $waybill['orders'] = $this->createOrderFields();
 }
 return print_r($waybill);
}
function sendDataAfterSubmit() {
    $request = new sendWaybill();
    return $request->createWaybill();
}
add_action('woocommerce_thankyou', 'sendDataAfterSubmit');
Answer 1

Примерно как то так должно выглядеть я думаю

class sendWaybill {
    private $order;
    public $waybill;
    public function __construct($order_id) {
        $this->waybill = [];
        $this->order = wc_get_order($order_id);
    }
    private function createOrderFields() {
        $order_fields = [];
        $order_data = $this->order->get_data();
        $payment_method = $order_data['payment_method'];
        $order_fields = [
            'payment_method' => $payment_method
        ];
        return $order_fields;
    }
    private function createWaybill() {
        $this->waybill['orders'][] = $this->createOrderFields();
    }
}
function sendDataAfterSubmit($order_id) {
    $request = new sendWaybill($order_id);
    $request->createWaybill();
    print_r($request->waybill);
}
add_action('woocommerce_thankyou', 'sendDataAfterSubmit', 10, 1);
READ ALSO
Настроить кол-во выводимых постов в Wordpress

Настроить кол-во выводимых постов в Wordpress

Вывожу посты определённой рубрики на главнуюВ таком виде выводятся все посты рубрики, а как сделать, чтобы выводилось несколько последних?

87