Администратор WooCommerce создает заказ - добавляет доставку с крючком ajax - PullRequest
0 голосов
/ 16 апреля 2020

Попробуйте добавить пользовательскую плату по формуле

  • ($ order-> subtotal + $ order_shipping_total) / 100 * 1,3 + 13;

в редактировании заказа ADMIN на основе выбранного способа доставки.

Попробуйте использовать крючок woocommerce_ajax_order_items_added, но без успеха

add_action('woocommerce_ajax_order_items_added', 'update_order', 10, 2);
function update_order($added_items, $order){
    foreach ($added_items as $added_item) {
        if ('line_item' === $added_item->get_type()) {

            $product = $added_item->get_product();
            $cat_ids = $product->get_category_ids();

            $rate = new WC_Shipping_Rate('flat_rate_shipping', 'Select payment method', '0', 'flat_rate');
            $shipping = new WC_Order_Item_Shipping();
            $shipping->set_shipping_rate($rate);
            $shipping->save();
            $order->add_item($shipping);

            $fee = new \WC_Order_Item_Fee();
            $fee->set_name('Custom Fee');
            $order_data = $order->get_data();
            $order_shipping_total = $order_data['shipping_total'];
            $fee_amount = ($order->subtotal + $order_shipping_total) / 100 * 1.3 + 13;
            $fee->set_total($fee_amount);
            $fee->save();
            $order->add_item($fee);
            //}

            $order->save();
        }
    }
}
...