Вывод списка способов доставки в Woocommerce
Бывают случаи когда нужно вывести список способов доставки товара в любом месте интернет магазина а не только в корзине или на странице checkout, вот один из способов как это можно сделать.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<select name="shipping_method[0]" data-index="0" id="shipping_method_0" class="shipping_method"> <?php foreach ( WC()->cart->get_shipping_packages() as $package_id => $package ) { if ( WC()->session->__isset( 'shipping_for_package_'.$package_id ) ) { $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); // Выбранный на данный момент метод доставки foreach ( WC()->session->get( 'shipping_for_package_'.$package_id )['rates'] as $shipping_rate_id => $shipping_rate ) { $rate_id = $shipping_rate->get_id(); // То же самое, что и переменная $shipping_rate_id (комбинация метода доставки и идентификатора экземпляра) $method_id = $shipping_rate->get_method_id(); // Ярлык метода доставки (slug) $instance_id = $shipping_rate->get_instance_id(); //Экземпляр ID $label_name = $shipping_rate->get_label(); // Имя метки метода $cost = $shipping_rate->get_cost(); // Стоимость без налога $tax_cost = $shipping_rate->get_shipping_tax(); // Стоимость налога $taxes = $shipping_rate->get_taxes(); // Детали налогов (array) $sel = ''; if($chosen_shipping_methods[0] == $rate_id) { $sel = ' selected'; } echo '<option value="'.$rate_id.'"'.$sel.'>'.$label_name.'</option>'; } } } ?> </select> |
В данном примере вывод данных идет в тэг select, но вы можете оформить данные любым нужным для вас способом.