我正在使用此代码(结合我自己的代码):
https://www.sbloggers.com/add-a-woocommerce-product-using-custom-php-code-programmatically
此代码可以正常工作,但是我的产品有很多变体,并且由于某种原因该过程已停止。
我有:
我目前只允许编写一种产品,该产品基于一种属性有157种变化。它正在将产品写入数据库,但有时会写入19个变体,有时是27个,有时是80个。脚本在随机时间被杀死。
有人能给我一些其他想法来防止它被杀死的想法吗?我希望脚本能够运行到完成。
预先感谢您的想法/解决方案/想法。
我正在使用的编写变体的代码如下。它正在工作,但是在此例程完成之前,Wordpress页面已完成加载。它会在随机时间停止。
==================================
//Loop and create the variations now based on the product.
if($variations){
echo '<p style="margin-bottom:15px;">Variations exist. Variation building...<br /></p>';
try{
foreach($variations as $variation){
$objVariation = new WC_Product_Variation();
$objVariation->set_price($variation["price"]);
$objVariation->set_regular_price($variation["regular_price"]);
$objVariation->set_parent_id($product_id);
if(isset($variation["sku"]) && $variation["sku"]){
$objVariation->set_sku($variation["sku"]);
}
$objVariation->set_manage_stock($variation["manage_stock"]);
//$objVariation->set_stock_quantity($variation["stock_quantity"]);
$objVariation->set_stock_quantity('1000');
$objVariation->set_stock_status('instock'); // in stock or out of stock value
$var_attributes = array();
foreach($variation["attributes"] as $vattribute){
$taxonomy = "pa_".wc_sanitize_taxonomy_name(stripslashes($vattribute["name"])); // name of variant attribute should be same as the name used for creating product attributes
$attr_val_slug = wc_sanitize_taxonomy_name(stripslashes($vattribute["option"]));
$var_attributes[$taxonomy]=$attr_val_slug;
echo '<p>Option written: ' . $vattribute["option"] . '</p>';
}
$objVariation->set_attributes($var_attributes);
$objVariation->save();
}
}
catch(Exception $e){
// handle exception here
}
}