Поддержка Плагины Програмное добавление заказов в WooCommerce

  • Добавляю заказы через ajax следующим образом:

    function roomble_ajax_create_order() {

    // Получить корзину
    $cart = WC()->cart;

    $phone = esc_attr( trim( $_REQUEST[‘phone’] ) );
    $email = esc_attr( trim( $_REQUEST[’email’] ) );
    $name = esc_attr( trim( $_REQUEST[‘name’] ) );

    $address = [
    ‘first_name’ => $name,
    ’email’ => $email,
    ‘phone’ => $phone,
    ‘country’ => ‘RU’,
    ];

    $order = wc_create_order();

    // Информация о покупателе
    $order->set_address( $address, ‘billing’ );
    $order->set_address( $address, ‘shipping’ );

    // Товары из корзины
    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {

    $_product = apply_filters( ‘woocommerce_cart_item_product’, $cart_item[‘data’], $cart_item, $cart_item_key );
    $product_id = apply_filters( ‘woocommerce_cart_item_product_id’, $cart_item[‘product_id’], $cart_item, $cart_item_key );

    $order->add_product( $_product, $cart_item[‘quantity’] );
    }

    // Добавить купоны
    foreach ( $cart->get_coupons() as $code => $coupon ) {
    $order->add_coupon( $code, $cart->get_coupon_discount_amount( $code ), $cart->get_coupon_discount_tax_amount( $code ) );
    }

    $order->calculate_totals();

    // Отправить письмо юзеру
    $mailer = WC()->mailer();
    $email = $mailer->emails[‘WC_Email_Customer_Processing_Order’];
    $email->trigger( $order->id );

    // Отправить письмо админу
    $email = $mailer->emails[‘WC_Email_New_Order’];
    $email->trigger( $order->id );

    // Очистить корзину
    $cart->empty_cart();

    // Автоматом добавим юзера в лист рассылки
    if ( $email ) {
    roomble_mailchimp_subscribe( $email, $name );
    }

    wp_send_json_success( $order->id );

    }
    add_action( ‘wp_ajax_create_order’, ‘roomble_ajax_create_order’ );
    add_action( ‘wp_ajax_nopriv_create_order’, ‘roomble_ajax_create_order’ );

    Столкнулся с такой проблемой, что купоны нормально добавляются к заказу и отображаются, но скидка не считается. Если зайти в админку в редактирование заказа — вижу примененный купон, а итоговая сумма не изменилась, что я делаю не так?

  • Тема «Програмное добавление заказов в WooCommerce» закрыта для новых ответов.