【问题标题】:Create a shortcode to display the Woocommerce flat rate price as displayed on the checkout创建一个简码以显示结帐时显示的 Woocommerce 统一费率价格
【发布时间】:2021-12-22 06:37:56
【问题描述】:

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

我们到阿姆斯特丹的运费为 [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');

【问题讨论】:

    标签: woocommerce wordpress-shortcode


    【解决方案1】:

    只是想知道您是否已经查看过这篇文章:WooCommerce: Show Shipping Rates @ Single Product Page

    基本上你可以通过一个简单的命令来获取运输区域:

    WC_Shipping_Zones::get_zones();
    

    获得它们后,您可以遍历数组并在 ($instance['cost']) 中查找费率。

    以下内容应该可以为您解决问题 - 当然将“amsterdam”更改为您想要的区域名称:

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

    还有一种说法是,通过使用一个短代码参数,可以使用相同的短代码返回两个费率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2016-03-29
      • 2019-12-28
      • 2021-05-18
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多