PHP中的条件函数返回运费

Posted

技术标签:

【中文标题】PHP中的条件函数返回运费【英文标题】:Conditional Function in PHP to Return Shipping Rate 【发布时间】:2015-10-17 04:12:23 【问题描述】:

我在 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,我不知道该怎么做:如何在指定条件下正确返回我的费率数组?

【问题讨论】:

您能分享一下您是如何在结账时编辑运费的吗?谢谢! 【参考方案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();

【讨论】:

以上是关于PHP中的条件函数返回运费的主要内容,如果未能解决你的问题,请参考以下文章

Shopware 5 中的基于条件的整数运费

php类型的相关函数,运算符,条件判断,循环

PHP循环 跳转 替代语法 函数 返回总结

Excel中的条件汇总函数,看过这些你就懂

无法从云形成 yaml 中的条件函数返回整数

excel中的if嵌套和ifs哪个计算起来更快?