2017-04-11 69 views
0

我在寻找扩展此PHP函数以包含多个变量。这个工作,但只有当我有一个产品id(8486)对变量“non_purchasable”。扩展PHP函数以包含更多变量

function sv_disable_repeat_purchase($purchasable, $product) { 
    $non_purchasable = 8486; 

    $product_id = $product->is_type('variation') ? $product->variation_id : $product->id; 

    if ($non_purchasable != $product_id) { 
     return $purchasable; 
    } 

    if (wc_customer_bought_product(wp_get_current_user()->user_email, get_current_user_id(), $product_id)) { 
     $purchasable = false; 
    } 

    if ($purchasable && $product->is_type('variation')) { 
     $purchasable = $product->parent->is_purchasable(); 
    } 

    return $purchasable; 
} 

我试着通过创建另一个变量扩展此:

$non_purchasable = 8486; 
$non_purchasable1 = 8645; 

使用两个if语句:

if ($non_purchasable != $product_id) { 
     return $purchasable; 
    } 
if ($non_purchasable1 != $product_id) { 
     return $purchasable; 
} 

但结果是,功能不再起作用。

$non_purchasable=array("8486","8645"); 

,但这又没有工作:

我还使用数组(离开代码的其余部分是)尝试。

+2

不能确定你想在这里做什么。 – Augwa

+0

如果要扩展函数以传递更多变量,则只需重新定义如下函数: 函数sv_disable_repeat_purchase($ purchasable,$ product,$ another_variable = null){//任意代码}。林不知道这是否是你想要的,但这将允许你传递2或3个变量到你的函数。 – Redrif

+0

对不起,我感到困惑。因此,基本上上述代码旨在通过重复购买锁定ID为'8486'的产品。我也想锁定ID为'8645'的产品。这当前由变量“$ non_purchasable = 8486;”控制。所以我的问题是如何扩展这个变量来包含这个额外的产品ID? – Dan382

回答

1

我觉得你的阵列的方法是最好的:

检查使用:

if (!in_array($product_id, $non_purchasable)) { 
    return $purchasable; 
} 
+0

看起来像我的数组没有工作,因为我没有修改IF语句。这现在似乎正在工作。 – Dan382