Я пытаюсь добавить сообщение на страницу получения заказа (спасибо), только если в заказе используется бесплатная доставка. Сообщение может заменить стандартное сообщение «Спасибо …» или дополнить его.
Вот код, с которым я работаю. Это основано на ответе здесь: Настроить страницу получения заказа на основе способа доставки в WooCommerce
//add message to order received if outside delivery area
add_filter( 'woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 20, 2 );
function woo_change_order_received_text( $thankyou_text, $order ) {
if ( is_wc_endpoint_url( 'order-received' ) ) {
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
$order_key = isset( $_GET['key'] ) ? wc_clean( $_GET['key'] ) : '';
$method_title_names = array();
if( in_array( 'Free shipping', $method_title_names ) ) {
return sprintf( __("%s <div class=\"outside-delivery-checkout\"><b>PLEASE NOTE:</b><br />Your shipping destination is outside of our normal delivery area. Our team will call you to calculate an additional fuel surcharge.</div>", "woocommerce"),
$thankyou_text
);
}
}
return $thankyou_text;
}
Я не могу заставить его работать правильно, и не уверен, что не так. Любая помощь с благодарностью.
Вам нужно просто следующее (где «Бесплатная доставка» — это название вашего метода бесплатной доставки):
add_filter( 'woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 20, 2 );
function woo_change_order_received_text( $text, $order ) {
if( $order->get_shipping_method() == 'Free shipping' ) {
$text .= ' <div class=\"outside-delivery-checkout\"><strong>'. __("PLEASE NOTE", "woocommerce") . ':</strong><br />'.__("Your shipping destination is outside of our normal delivery area. Our team will call you to calculate an additional fuel surcharge.", "woocommerce") . '</div>';
}
return $text;
}
Аналогично: код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Настроить страницу получения заказа на основе способа доставки в WooCommerce
Других решений пока нет …