gikami
@gikami
web программист

Как добавить счет на оплату из кода через плагин Woocommerce Wallet?

Установил плагин для создания кошелька и встала задача модернизировать его.
Все работает хорошо, но можно ли как то сделать добавления счета на оплату из вне?
То есть например, из 1С базы клиентов идет запрос на сайт и через файл добавляет счет на оплату, далее клиент заходит на страницу и просто жмет оплатить.
Я нашел пример того, как сделать добавление заказа, то есть счета на оплату. Выглядит он так:
$address = array(
      'first_name' => 'Альберт',
      'last_name'  => 'Ушаков',
      'company'    => 'Speed Society',
      'email'      => 'qwerty123456789@gmail.com',
      'phone'      => '760-555-1212',
      'address_1'  => '123 Main st.',
      'address_2'  => '104',
      'city'       => 'San Diego',
      'state'      => 'Ca',
      'postcode'   => '92121',
      'country'    => 'RU'
  );
$order_args = array(
'customer_id' => get_current_user_id(), // id пользователя который сделал заказ
);

  $order = wc_create_order($order_args);
print_r(get_product('4534'));

  $order->add_product( get_product('4534'), 1); // This is an existing SIMPLE product
  $order->set_total( 100.00 ); //Думал так заработает, но нет, не обновляет
  $order->set_address( $address, 'billing' );

  $order->calculate_totals();
  $order->update_status("Pending Payment", 'Imported order', TRUE);

Он добавляет заказ, но вышла проблема. На товаре по умолчанию цена 0. Как же задать ей через код другую?
Когда через плагин пополняешь счет, там вводишь сумму пополнения и оплачиваешь. Как же сделать подобное здесь?
Подскажите пожалуйста(
5d8decd56367d689369866.png

Есть другой пример, но в нем вылезает ошибка. То есть вот эти строки не работают:
$shipping = new stdClass();
$shipping->label = 'Code pay';
$shipping->id = 'code_pay';
$shipping->cost = 100.00;
$shipping->taxes = array();
$order->add_shipping($shipping);
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
gikami
@gikami Автор вопроса
web программист
Нашел решение)
$order->add_product( get_product('4534'), 1);
$order->set_total(40, 'shipping');
$order->set_total(0, 'cart_discount');
$order->set_total(0, 'cart_discount_tax');
$order->set_total(0, 'tax');
$order->set_total(0, 'shipping_tax');
$order->set_total(40, 'total');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы