PHP中的条件函数返回运费

时间:2015-10-17 04:12:24

标签: php shopify

我在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 个答案:

答案 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();
}