WooCommerce добавить ордер администратора для кнопки пересчета - PullRequest
1 голос
/ 21 июня 2019

Я хочу просмотреть все продукты, добавленные в заказ, в админке, прежде чем заказ будет фактически отправлен.Пока что единственные найденные мной хуки WooCommerce позволяют вам получать доступ только к элементам продукта.

Я искал хук, который срабатывает, когда пользователь нажимает кнопку пересчета, но на самом деле он может сработать, когда пользователь добавляетпродукт, налог, способ доставки и т. д. Мне просто нужно перебрать все элементы, добавленные в заказ.

В данный момент я использую woocommerce_admin_order_item_values hook, но это автономный цикл, поэтому я не могу добавить все мои '$ item [' product_id ']' вместе.

function action_woocommerce_admin_order_item_values( $null, $item, $absint ) { 
$item_ids = array($item['product_id']);
}
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 10, 3 );

Вы также можете использовать - woocommerce_before_order_itemmeta Подцепить, но это позволяет получить доступ только к каждому элементу индивидуально, тогда как мне нужно перебрать каждый элемент в сводке.

1 Ответ

1 голос
/ 21 июня 2019

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

$ order = WC_Order object

    add_action("woocommerce_order_before_calculate_taxes", "custom_order_before_calculate_taxes", 10, 2);
    function custom_order_before_calculate_taxes($args, $order) {
        // Do something
    }

    add_action("woocommerce_order_item_after_calculate_taxes", "custom_order_item_after_calculate_taxes", 10, 2);
    function custom_order_item_after_calculate_taxes($order, $calculate_tax_for) {
       // Do something
    }

    add_action("woocommerce_before_order_object_save", "custom_before_order_object_save", 10, 2);
    function custom_before_order_object_save($order, $data_store) {
      // Do something
    }

    add_action( 'woocommerce_order_before_calculate_totals', "custom_order_before_calculate_totals", 10, 2);
    function custom_order_before_calculate_totals($and_taxes, $order ) {
      // Do something
    }
    add_action( 'woocommerce_order_after_calculate_totals', "custom_order_after_calculate_totals", 10, 2);
    function custom_order_after_calculate_totals($and_taxes, $order) {
      //Do something
    }

    add_filter("woocommerce_order_is_vat_exempt", function(){
       return $boolean;
    });

    add_filter("woocommerce_order_get_total", "custom_order_get_total", 10, 2);
    function custom_order_get_total($value, $order) {
      //do somethig
      return $value;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...