我想创建一个插件来添加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');
发布于 2021-11-09 15:44:49
我想知道你是否已经看过这篇文章了: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' );
还可以说,通过使用短码参数,可以使用相同的短码来返回两个费率。
https://stackoverflow.com/questions/69900131
复制相似问题