Я пытаюсь добавить код, подобный приведенному ниже, в файл functions.php.Общая функция заключается в проверке товаров в корзине и их настраиваемых полях (post_meta) с именем auto_delivery_default.
Если определенный текст в настраиваемом поле отображается только для бесплатной доставки, если для всего остального текста отображаются все другие способы доставки.
Вот что я получил до сих пор, но я что-то упускаю из виду, что это не работает должным образом;
function show_free_ship_to_autodelivery ( $autodelivery_rate ) {
$autodelivery_free = array();
foreach( WC()->cart->get_cart() as $cart_item ){
$product = $cart_item['data'];
$product_id = $product->get_id(); // get the product ID
$autodelivery = get_post_meta( $product->get_id(), 'auto_delivery_default', true );
if( $autodelivery == "90 Days" ) {
$autodeliveryfree = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$autodelivery_free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $autodelivery_free ) ? $autodelivery_free : $autodelivery_rate;
}
}
}
add_filter( 'woocommerce_package_rates', 'show_free_ship_to_autodelivery', 10);