Добавьте несколько тарифов на доставку с помощью функции "Добавить тариф" с пользовательским идентификатором
Я создал пользовательский класс доставки для WooCommerce. В функции calculate_shipping на наш сервер отправляется запрос API с запросом о возможных способах доставки. Это может привести к одной или нескольким ставкам.
Я интегрировал это следующим образом в функцию calculate_shipping()
// Make a shipping rate for each result
foreach ($quote->shipping_options as $option) {
$rate = array(
'id' => 'my_method_'.$option->id,
'label' => $methodNames[$option->name],
'cost' => $option->price,
);
// Register the rate
$this->add_rate($rate);
}
Здесь отображаются правильные параметры, используется правильная скорость, и в администраторе WooCommerce я вижу, какой метод был использован. Пока все идет хорошо.
Проблема является:
Заказ хранится с идентификатором доставки из пользовательского класса доставки и меткой выбранного тарифа.
Как программно определить, какой метод доставки был использован? Я не хочу совпадать на этикетке по очевидным причинам, и идентификатор неправильный. Могу ли я сохранить идентификатор или изменить это поведение?
1 answers
Чтобы понять, как сохранить идентификатор выбранного метода, или попробуйте использовать:
// Make a shipping rate for each result
foreach ($quote->shipping_options as $option) {
$rate = array(
'id' => 'my_method_'.$option->id,
'label' => $methodNames[$option->name],
'cost' => $option->price,
'meta_data' => array(),
);
// Register the rate
$this->add_rate($rate);
}
В 'meta_data' вы можете хранить в базе данных все, что захотите...