如何更改woocommerce订阅中的多个订阅产品字符串?

时间:2019-12-17 20:52:06

标签: php wordpress woocommerce str-replace woocommerce-subscriptions

我的网站上每月,每年和每周都有多个订阅产品。

我正在运行此代码,它可以正常工作(将“月更改为30天”),但仅适用于具有“每月”功能的产品,如何应用它来更改每周和每年的字符串?

谢谢

function wc_subscriptions_custom_price_string( $pricestring ) {
    $newprice = str_replace( 'month', '30 days', $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' );

2 个答案:

答案 0 :(得分:0)

您可以选择替换所有需要的字符串,前提是您知道现在 的含义。

我找不到文档,但是鉴于// callback from parent this.props.onSelect(this.state); 的取值分别为$pricestringbiweeklyweekly,我将遵循这种模式并尝试:

yearly

基本上,它使用function wc_subscriptions_custom_price_string( $pricestring ) { $newprice = str_replace( 'biweekly', '14 days', $pricestring ); $newprice = str_replace( 'weekly', '7 days', $pricestring ); $newprice = str_replace( 'yearly', '365 days', $pricestring ); return $newprice; } 并替换内部找到的任何文本(第一个参数),然后将其替换为任何文本(第二个参数),再次保存并返回修改后的$pricestring

如果要避免在$newprice中意外重写biweekly,请注意weeklyweekly的顺序。

答案 1 :(得分:0)

只需执行类似的替换,您甚至可以嵌入它们,例如:

function wc_subscriptions_custom_price_string( $pricestring ) {
    $newprice = str_replace(
        'month', 
        '30 days', 
        str_replace(
            'year',
            '365 days',
            str_replace(
                'week',
                '7 days',
                $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' );