页面执行被杀死

时间:2019-07-17 13:58:58

标签: php wordpress woocommerce custom-wordpress-pages

我正在使用此代码(结合我自己的代码):

https://www.sbloggers.com/add-a-woocommerce-product-using-custom-php-code-programmatically

此代码可以正常工作,但是我的产品有很多变体,并且由于某种原因该过程已停止。

我有:

  1. 将最大执行时间设置为600
  2. 已发出set_time_limit(0);在脚本的顶部。

我目前只允许编写一种产品,该产品基于一种属性有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
                }
            }

0 个答案:

没有答案