我需要一个更好的方法来做到这一点。
目前,我已将代码直接添加到 class-wc-subscriptions-product.php 文件中的 get_price_string 函数中,因此当设置免费试用时,我可以更改添加到价格字符串中的文本。
当然,这远非完美。
那么,有谁知道我需要在主题文件夹中的 functions.php 文件中添加什么钩子才能做同样的事情?
我需要一个更好的方法来做到这一点。
目前,我已将代码直接添加到 class-wc-subscriptions-product.php 文件中的 get_price_string 函数中,因此当设置免费试用时,我可以更改添加到价格字符串中的文本。
当然,这远非完美。
那么,有谁知道我需要在主题文件夹中的 functions.php 文件中添加什么钩子才能做同样的事情?
这是我网站的一个非常简单的版本。我需要让它说“每季”而不是“每 3 个月”。最简单的方法是创建一个插件:
<?php
/**
* Plugin Name: My Subscription Price Text
* Description: Make it say "Every Season" instead of "Every 3 Months"
* Author: green coder
* Author URI:
* Version: 1.0
* License: GPL v2
*/
function my_subs_price_string( $pricestring ) {
$newprice = str_replace( 'every 3 months', 'per season', $pricestring );
return $newprice;
}
add_filter( 'woocommerce_subscriptions_product_price_string', 'my_subs_price_string' );
add_filter( 'woocommerce_subscription_price_string', 'my_subs_price_string' );
好的老问题,但我最近需要这样做。我不想依赖字符串替换,所以我就是这样做的(可以根据您的需要进行调整 - 他们的关键是查看$product
您可以使用的属性):
add_filter( 'woocommerce_subscriptions_product_price_string', 'my_subs_price_string', 10, 3 );
function my_subs_price_string( $subscription_string, $product, $include ) {
/****
var_dump($product); Various variables are available to us
****/
return 'An initial easy payment of ' . wc_price( $product->subscription_sign_up_fee ) .
', a ' . $product->subscription_trial_length . ' ' . $product->subscription_trial_period .
' trial of the product, then an outright purchase of ' . wc_price( $product->subscription_price );
}
在/public_html/wp-content/plugins/woocommerce-subscriptions/includes/class-wc-subscriptions-product.php
寻找get_price_string(...)
在此处调整布尔值:
$include = wp_parse_args( $include, array(
'tax_calculation' => get_option( 'woocommerce_tax_display_shop' ),
'subscription_price' => true,
'subscription_period' => true,
'subscription_length' => true,
'sign_up_fee' => true,
'trial_length' => true,
)
);