我在Shopify有一家商店,我正在使用应用程序基本上创建我自己的有条件运费。我希望免费送货超过50美元的订单,但我需要从这个条件中排除一个单项(该项目中有SKU,你会看到AMF1234)。有关我正在使用的内容的详细信息,请参阅应用user guide。这是我的功能:
function calculateshipping($DATA) {
$_RATES = array();
$_RATES[] = array(
"service_name" => "Free Standard Shipping",
"service_code" => "FREE_STANDARD_SHIPPING",
"total_price" => 0,
"currency" => "USD",
);
$containsSpecialProduct = false;
$total = 0;
foreach ($DATA['items'] as $item) {
if ($item['sku'] == 'AMF1234') {
$containsSpecialProduct = true;
$total = $total - $item['quantity']*$item['price']/100; // dividing by 100 because it returns in cents
}
}
根据指南,我需要return $_RATES
让它们在我的商店中显示为送货选项。来自jQuery,这是我的想法,让它工作,但它没有:
if ($total > 50) {
return $_RATES;
} else {
return;
}
我还尝试初始化并返回第二个空数组$_RATES1
,但它似乎没有显示我的费率。由于我不习惯使用PHP,所以我不知道如何做到这一点:如何在指定条件下正确返回我的速率数组?
答案 0 :(得分:1)
您可以像这样给出送货服务的钥匙,以便您知道要返回哪一个:
$_RATES['FreeShipping'] = array(
"service_name" => "Free Standard Shipping",
"service_code" => "FREE_STANDARD_SHIPPING",
"total_price" => 0,
"currency" => "USD",
);
如果您不想免费送货如果SKU = AMF1234的产品在购物车中,那么:
foreach ($DATA['items'] as $item) {
if ($item['sku'] == 'AMF1234') {
$containsSpecialProduct = true;
}
$total = $total - $item['quantity']*$item['price']/100;
}
if ($total > 50 && $containsSpecialProduct === false) {
return $_RATES['FreeShipping'];
} else {
//return a different shipping service
return array();
}