PHP 至 Return 运费的条件函数

Conditional Function in PHP to Return Shipping Rate

我在 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;
    }

我也尝试过初始化和 returning 第二个空数组,$_RATES1 但它似乎没有显示我的费率。由于我不习惯使用 PHP,我不知道该怎么做:如何在指定条件下正确 return 我的费率数组?

您可以像这样给送货服务一个密钥,这样您就知道要送哪个 return:

$_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();
}