提问人:DDJ 提问时间:10/4/2023 最后编辑:LoicTheAztecDDJ 更新时间:10/5/2023 访问量:30
更改 WooCommerce 订阅价格字符串
Change WooCommerce Subscriptions price strings
问:
我已经能够使用下面的代码翻译网站上的大多数内容,但不能翻译 3 个字段。
“美元” “/月” “/月为 1 个月”。
我想说一些不同的话,这样以后更容易翻译。
function wc_billing_field_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case '/ Month' :
$translated_text = __( 'Monthly-Cycle', 'woocommerce' );
break;
case '/ Month for 1 Month For' :
$translated_text = __( 'Monthly-Cycle for a Month', 'woocommerce' );
break;
case 'USD' :
$translated_text = __( 'US-Dollar', 'woocommerce' );
break;
case 'First renewal' :
$translated_text = __( 'First-Cycle', 'woocommerce' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'wc_billing_field_strings', 20, 3 );
答:
1赞
LoicTheAztec
10/5/2023
#1
最好尝试对“USD”、“/Month”和“/Month for 1 Month For”字符串使用以下方法:
add_filter( 'woocommerce_subscriptions_product_price_string', 'subscr_price_string_replacement', 10 );
add_filter( 'woocommerce_subscription_price_string', 'subscr_price_string_replacement', 10 );
function subscr_price_string_replacement( $price_string ){
$original_string1 = "/ Month for 1 Month For";
$original_string2 = "/ Month";
$original_string3 = "USD";
if ( strpos($subscription_string, $original_string1) !== false ) {
$replacement_string = __( "Monthly-Cycle for a Month", 'woocommerce' );
$price_string = str_replace( $original_string1, $replacement_string, $subscription_string );
}
if ( strpos($subscription_string, $original_string2) !== false ) {
$replacement_string = __( "Monthly-Cycle", 'woocommerce' );
$price_string = str_replace( $original_string2, $replacement_string, $subscription_string );
}
if ( strpos($subscription_string, $original_string3) !== false ) {
$replacement_string = __( "US-Dollar", 'woocommerce' );
$price_string = str_replace( $original_string3, $replacement_string, $subscription_string );
}
return $price_string;
}
对于“首次续订”字符串,最好使用:
add_filter( 'gettext', 'subscr_string_replacement', 20, 3 );
function subscr_string_replacement( $translated_text, $original_text, $domain ) {
if ( $original_text === 'First renewal: %s' ) {
$translated_text = __( 'First-Cycle: %s', 'woocommerce' );
}
return $translated_text;
}
代码位于子主题的函数.php文件中(或插件中)。它应该适用于大多数字符串。
评论
0赞
DDJ
10/15/2023
唯一有效的是第一次更新。更近了一步!
评论