Как изменить текст оплаты за подписку в подписках WooCommerce?

До сих пор я безуспешно пытался добавить следующий код в мои functions.php:

<?php
function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Sign-up Fee' :
$translated_text = __( 'bin deposit', 'woocommerce-subscriptions' );
break;
case 'Apply Coupon':
$translated_text = __( 'Enter Coupon', 'woocommerce' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );
?>
<?php
function my_signupfee_string( $pricestring ) {

$newprice = str_replace( 'sign-up fee', 'bin deposit', $pricestring );
return $newprice;

}

add_filter( 'woocommerce_subscriptions_sign_up_fee', 'my_signupfee_string' );
?>

Ни одна из этих функций не работает, и я новичок в изменении внутренних компонентов плагина, таких как подписки.

4

Решение

Вы используете неправильный фильтр. woocommerce_subscriptions_sign_up_fee Фильтр предназначен только для изменения действительного числа. gettext Фильтр о переводе строк.

Попробуй это:

function change_subscription_product_string( $subscription_string, $product, $include )
{
if( $include['sign_up_fee'] ){
$subscription_string = str_replace('sign-up fee', 'something else', $subscription_string);
}
return $subscription_string;
}
add_filter( 'woocommerce_subscriptions_product_price_string', 'change_subscription_product_string', 10, 3 );

В моем примере это изменило строку:

«111,10 долл. США в месяц в течение 5 месяцев с 3-месячной бесплатной пробной версией и 22,00 долл. США за регистрацию»

в

«111,10 $ / месяц в течение 5 месяцев с 3-месячной бесплатной пробной версией и 22,00 $ что-то другое»

woocommerce_subscriptions_product_price_string фильтр расположен в class-wc-subscriptions-product.php в функции get_price_string(),

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]