如果我使用这种结构,一切正常:
function create_order_with_custom_products()
{
$orderGenerator = new OrderGenerator();
$orderGenerator->setCustomer(6907);
$orderGenerator->createOrder(array(
// Add configurable product
array(
'product' => 30151,
'qty' => 1
), array(
'product' => 30150,
'qty' => 2
),
));
}
如果我创建一个数组并使用它:
$ItemsId = [];
if(!empty($ItemsInCart) && count($ItemsInCart)>0)
{
foreach($ItemsInCart['productid'] as $key=>$value){
$ProductId = $value;
$ProductQty = $ItemsInCart["productqty"][$key];
$product_id = $ProductId; // Replace id with your product id
$qty = $ProductQty; // Replace qty with your qty
$ItemsId[] = ["product"=>$ProductId,"qty"=>$qty];
}
}
function create_order_with_custom_products()
{
$orderGenerator = new OrderGenerator();
$orderGenerator->setCustomer(6907);
$orderGenerator->createOrder($ItemsId);
}
如果我print_r($ItemsId);
我收到以下输出:
数组([0] =>数组([product] => 30143 [数量] => 1)[1] =>数组( [product] => 30144 [数量] => 2)[2] =>数组([product] => 30145 [qty] => 3)[3] =>阵列([product] => 30146 [qty] => 4)[4] => 数组([product] => 30147 [qty] => 5))
它已不再有效。我没有看到原因。
您可以在此处看到的createOrder
功能代码:http://pastebin.com/0iUbZpHU
您能告诉我我的错误在哪里以及为什么我的代码无效。
答案 0 :(得分:2)
阅读variable scope。 $ItemsId
函数中没有create_order_with_custom_products()
变量。您需要将其作为参数传递:
function create_order_with_custom_products($ItemsId)
{
// ...
}
然后使用您创建的变量调用它:
create_order_with_custom_products($itemsId);