Изменить всю строку продукта в WooCommerce Subscripitons

Я хочу изменить текст и порядок строки цены в подписках WooCommerce. Прямо сейчас это говорит:

"35,00 долларов США 1-го числа каждого месяца в течение 11 месяцев и 35,00 долларов США за регистрацию".

и я хочу это сказать:

"35,00 долл. США за первую коробку и затем 35,00 долл. США 1-го числа каждого месяца в течение 11 месяцев".

Я нашел этот код, который я могу использовать, чтобы изменить "плату за регистрацию" на "для первого ящика":

 /* WooCommerce Subscriptions Price String */

 function wc_subscriptions_custom_price_string( $pricestring ) {
    $newprice = str_replace( 'sign-up fee', 'for the first box', $pricestring );
    return $newprice;
}
add_filter( 'woocommerce_subscriptions_product_price_string', 'wc_subscriptions_custom_price_string' );
add_filter( 'woocommerce_subscription_price_string', 'wc_subscriptions_custom_price_string' );

Теперь написано "35,00 долларов США 1-го числа каждого месяца в течение 11 месяцев и 35,00 долларов США за первую коробку".

Как я могу изменить заказ?

1 ответ

Решение

Просто измените порядок строки, взорвав оригинал в массив:

function wc_subscriptions_custom_price_string( $pricestring ) {
   $replace_price = str_replace( 'sign-up fee', 'for the first box', $pricestring );
   $aPrice = explode(" and a ", $replace_price);
   $newprice = $aPrice[1] . " and then " . $aPrice[0]; 
   $finalprice = str_replace(" on "," +shipping on ", $newprice);
   return finalprice;
}
add_filter( 'woocommerce_subscriptions_product_price_string', 'wc_subscriptions_custom_price_string' );
add_filter( 'woocommerce_subscription_price_string', 'wc_subscriptions_custom_price_string' );

Смотрите: взорваться ()

Или, если вы хотите стать модным:

$newprice = implode(" and then ", array_reverse($aPrice));
Другие вопросы по тегам