На странице оформления заказа моего сайта на основе WooCommerce у пользователей будет список способов доставки на выбор в зависимости от того, что они покупают.
Это список, который я хочу зафиксировать:
Вещи как
- «Бесплатная доставка» для заказов на определенную сумму
- «Доставка грузов» для определенных товаров и т. д.
Моя цель – отобразить ВСЕ доступные методы для каждого конкретного заказа и отобразить их на странице «Редактировать заказ/Сведения о заказе» в панели администратора.
Небольшая функция, которая поможет нам быстро определить, какой вариант люди выбирают чаще, в зависимости от доступных им вариантов.
Это то, что у меня есть до сих пор:
add_action( 'woocommerce_checkout_update_order_meta', 'save_available_shipping_methods' );
function save_available_shipping_methods( $order_id ) {
$shippingmethods = WC()->cart->get_shipping_methods();
update_post_meta( $order_id, '_shipping_methods', $shippingmethods );
}
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'get_available_shipping_methods', 10, 1 );
function get_available_shipping_methods($order){
$order = wc_get_order( $order_id );
if ( $order ) {
echo '<p><strong>'.__('Available Shipping Methods: ').'</strong> ' . get_post_meta($order->get_shipping_methods(), '_shipping_field_value', true ) . '</p>';
}
}
Я также прикреплю изображение, чтобы, возможно, было немного легче следить за вещами.
Вот где я хотел бы поместить это. Текущий хук помещает поле под адрес доставки
$rate_cost = $rate->get_cost();
. См. Класс WC_Shipping_Rate. - Начните, и если вы не доберетесь туда, не стесняйтесь задавать новый вопрос с возможной ссылкой на этот вопрос С уважением 09.07.2020$rate_labels[] = $rate->get_label();
на$rate_labels[] = $rate->get_cost();
в моем ответе. Что вы получаете в результате? 09.07.2020