首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建快捷代码以显示在结帐时显示的Woocommerce统一费率价格

创建快捷代码以显示在结帐时显示的Woocommerce统一费率价格
EN

Stack Overflow用户
提问于 2021-11-09 14:43:04
回答 1查看 61关注 0票数 0

我想创建一个插件来添加2个短码到我的woocommerce商店,这样我就可以将运费作为短码添加到文本中,如下例所示:

我们到阿姆斯特丹的运费是shipping_cost_1欧元

所以在前端的文本是这样的:我们到阿姆斯特丹的运费是6,95欧元

以下是我要使用的费率和短码:

shipping_cost_1 =统一费率woocommerce运费包括发货1区的增值税(在阿姆斯特丹境内发货) shipping_cost_2 =统一费率woocommerce运费包括发货2区的增值税(在阿姆斯特丹以外发货)

作为参考,在结帐页面上显示阿姆斯特丹的运费:

我想将代码添加到以下结构中:

//短码函数

函数shipping_cost_display_1() {

//从woocommerce获取运费

???

//返回广告码

???

//注册快捷码

add_shortcode('shipping_cost_1','shipping_cost_display_1');

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 15:44:49

我想知道你是否已经看过这篇文章了:WooCommerce: Show Shipping Rates @ Single Product Page

基本上,您可以使用一个简单的命令获取发货区域:

代码语言:javascript
运行
复制
WC_Shipping_Zones::get_zones();

一旦你有了它们,你就可以遍历数组并找到其中的费率($instance‘’cost‘)。

下面的代码应该可以帮你解决这个问题--当然,把"amsterdam“改成你想要的区域名称:

代码语言:javascript
运行
复制
function shipping_cost_display_1() {
    $zones = WC_Shipping_Zones::get_zones();
    foreach ( $zones as $zone_id => $zone ) {
        if ( "amsterdam" !== $zone['zone_name'] ) continue;
        $zone_shipping_methods = $zone['shipping_methods'];
        foreach ( $zone_shipping_methods as $index => $method ) {
            $instance = $method->instance_settings;
            return $instance['cost'];
        }
    }
}

add_shortcode( 'shipping_cost_1', 'shipping_cost_display_1' );

还可以说,通过使用短码参数,可以使用相同的短码来返回两个费率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69900131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档