自定义WooCommerce Subscribe All The Things插件订阅选项文本的代码求建议
WooCommerce Subscribe All The Things 自定义文本代码问题及优化
现有代码存在的问题
- 钩子匹配错误:你当前选用的
wcsatt_single_product_subscription_option_description过滤器仅负责修改订阅方案的描述文本,无法覆盖你要调整的「one time option(一次性购买选项)」字符串,不符合你的开发需求。 - 存在冗余代码:代码中声明了
$option_price_class变量,但全程没有调用,属于无效内容,可直接删除。 - 无本地化支持:硬编码的「Subscription:」静态文本没有使用WordPress官方的本地化函数,多语言站点无法对该文本做翻译适配。
- 样式适配性差:输出的
<span>标签没有添加专属类名,后续如果要调整该区域的样式,很难精准定位元素。
适配需求的优化代码
如果你的目标是修改一次性购买选项的文本,可使用以下代码:
// 修改一次性购买选项描述 function filter_wcsatt_single_product_one_time_option_description( $option_description, $product ) { // 可自行修改下方的「一次性购买:」文本为你需要的内容 $option_description = '<span class="one-time-option-label">' . esc_html__( '一次性购买:', '你的文本域名' ) . '</span> <span class="one-time-option-price">' . wc_price( $product->get_regular_price() ) . '</span>'; return $option_description; } add_filter( 'wcsatt_single_product_one_time_option_description', 'filter_wcsatt_single_product_one_time_option_description', 10, 2 ); // 如果你同时需要修改订阅选项的描述,可保留以下逻辑 function filter_wcsatt_single_product_subscription_option_description( $option_description, $sub_price_html, $has_price_filter, $force_subscription, $product, $subscription_scheme ) { $option_description = '<span class="subscription-option-label">' . esc_html__( '订阅:', '你的文本域名' ) . '</span> <span class="subscription-option-price">' . $sub_price_html . '</span>'; return $option_description; } add_filter( 'wcsatt_single_product_subscription_option_description', 'filter_wcsatt_single_product_subscription_option_description', 10, 6 );
优化说明
- 替换为对应需求的官方钩子,确保修改的是目标区域的文本
- 删除了未使用的冗余变量,精简代码逻辑
- 加入
esc_html__()本地化转义函数,兼顾多语言适配和输出安全 - 给标签添加了专属类名,后续调整CSS样式可以直接选中对应元素
- 如果你不需要修改订阅选项的描述,直接删除第二段回调函数和对应钩子绑定即可
内容的提问来源于stack exchange,提问作者Mr.Devops
相关产品推荐
相关产品推荐

