Обновить поля адреса, относящиеся к заказу в WooCommerce - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь обновить данные, относящиеся к заказу woocommerce. Я могу получить существующие данные, но не обновить. Перед тем, как начать, я вручную создал заказ, перейдя на страницу заказов в Личном кабинете, нажав кнопку Добавить заказ, затем заполнив данные адреса доставки и выставления счета и добавив некоторые продукты.

Затем я создаю копию из woocommerce / checkout / form-pay. php в моей теме, к которой я добавляю код:

$invoiceid = $order->id;
echo invoiceid;

Возвращает номер идентификатора, соответствующий номеру в URL Я знаю, что нахожусь в нужном месте. Затем я пытаюсь углубиться в детали адреса, относящиеся к заказу. Для простоты, пока у меня не будет рабочего процесса, я просто обновлю поле «Имя для выставления счета». Я ввожу:

$billing_first_name = $order->get_billing_first_name();
echo $billing_first_name; 

Опять же, он возвращает значение, которое я ввел в это поле при создании заказа вручную. Все идет нормально. Однако, когда я пытаюсь обновить значение, все рушится.

Прочитав эту страницу WooCommerce в CRUD, я попытался:

$order->set_billing_first_name( 'Foo' );
$order->save;

Но значение не делает т обновление. Основываясь на этой странице, я также попытался:

$order->update_meta_data( billing_first_name, 'foo' );
$order->save;

Это также не привело к обновлению поля.

Каков правильный процесс / синтаксис для обновления этого поля?

1 Ответ

1 голос
/ 22 января 2020

Вы можете обновить мета заказа с идентификатором заказа. Вот фрагмент, вы можете изменить крючок согласно вашему требованию. Нужно поместить этот код в функции. php.

add_action( 'woocommerce_thankyou', 'digger_checkout_save_user_meta');

function digger_checkout_save_user_meta( $order_id ) {

   //$order = wc_get_order( $order_id );
  // $user_id = $order->get_user_id();

      update_post_meta( $order_id, '_billing_first_name', 'first name here');
      update_post_meta($order_id, '_billing_last_name','last name' ); 

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