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

How to change multiple subscription products strings in woocommerce subscriptions?

我的网站上有多个订阅产品,包括月度、年度和周度。

我是 运行 这段代码工作正常(更改 "month to 30 days ")但仅适用于具有 "Monthly" 的产品 我如何应用它来更改每周的字符串还有每年吗?

谢谢

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' );

您可以选择替换您需要的所有字符串假设您现在知道它说的是什么。

我找不到文档,但考虑到 $pricestring 取值 biweeklyweeklyyearly,我会遵循该模式,并且尝试:

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.

注意 biweeklyweekly 的顺序,以免在 biweekly 中不小心重写 weekly

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

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' );