请求开发WooCommerce插件实现指定配送区域含增值税统一运费短代码功能
没问题,我帮你搞定这个WooCommerce短代码需求!下面是完整的实现代码,不仅能准确获取指定配送区域的含增值税统一运费,还加了容错处理避免出现错误提示:
完整实现代码
// 短代码函数:获取阿姆斯特丹境内运费 function shipping_cost_display_1() { // 目标配送区域名称(和你WooCommerce后台设置的一致) $target_zone_name = '配送区域1'; return get_flat_rate_shipping_cost($target_zone_name); } // 短代码函数:获取阿姆斯特丹境外运费 function shipping_cost_display_2() { $target_zone_name = '配送区域2'; return get_flat_rate_shipping_cost($target_zone_name); } // 通用函数:根据配送区域名称获取含增值税的统一运费 function get_flat_rate_shipping_cost($zone_name) { // 获取所有WooCommerce配送区域 $shipping_zones = WC_Shipping_Zones::get_zones(); // 遍历配送区域找目标区域 foreach ($shipping_zones as $zone) { if ($zone['zone_name'] === $zone_name) { // 遍历区域内的配送方法 foreach ($zone['shipping_methods'] as $method) { // 只处理统一运费(flat rate)方法 if ($method->id === 'flat_rate') { // 获取含增值税的运费金额 $cost = wc_get_price_including_tax($method); // 按照店铺设置的格式格式化金额(自动处理千分符、小数位) return wc_price($cost); } } // 如果找到区域但没找到flat rate方法,返回提示 return '暂无运费信息'; } } // 如果没找到目标区域,返回提示 return '未找到对应配送区域'; } // 注册两个短代码 add_shortcode('shipping_cost_1', 'shipping_cost_display_1'); add_shortcode('shipping_cost_2', 'shipping_cost_display_2');
关键细节说明
- 区域名称匹配:请确保
$target_zone_name的值和你WooCommerce后台「配送 > 配送区域」里设置的区域名称完全一致,大小写、空格都不能错 - 自动金额格式化:用
wc_price()函数会自动按照你店铺后台设置的货币格式(比如欧元的6,95格式)输出,不用自己手动处理 - 容错处理:如果找不到目标区域或者区域内没有flat rate配送方法,会返回友好提示,不会在前端显示空白或错误代码
- 含增值税计算:
wc_get_price_including_tax()会自动根据你店铺的税费设置计算包含增值税的运费,和结账页面显示的金额完全一致
使用方法
把这段代码添加到你主题的functions.php文件里,或者用自定义代码插件(比如Code Snippets)来添加,之后就可以在文章、页面或者产品描述里直接用:
我们前往阿姆斯特丹的运费为 [shipping_cost_1] 欧元
阿姆斯特丹境外的运费为 [shipping_cost_2] 欧元
前端就会显示和结账页面一致的格式化运费金额啦!
内容的提问来源于stack exchange,提问作者Jan Pieters
相关产品推荐
相关产品推荐

