如何解决Woocommarce 在循环中插入产品后出现错误:致命错误:未捕获错误:在 bool 上调用成员函数 set_sku()
我正在尝试从 CSV 文件插入产品,此代码适用于前 200-300 个项目,但随后出现此错误: 致命错误:未捕获的错误:在 /home/u779870322/public_html/fragrancex/insertFuture.php:126 中的 bool 上调用成员函数 set_sku() 堆栈跟踪:#0 {main} 抛出 /home/u779870322/public_html/fragrancex/第 126 行的 insertFuture.php
我试图找到答案,但没有运气。
我发布了我的全部代码,因为我不知道错误来自哪里。
require_once('../wp-load.php');
define('WP_MEMORY_LIMIT','1024M');
set_time_limit(99000);
ini_set('max_execution_time',99000);
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting(E_ALL);
//insert image to folder from url
function Generate_Featured_Image($image_url,$post_title,$post_id)
{
$upload_dir = wp_upload_dir();
$image_data = file_get_contents($image_url);
$filename = basename($image_url);
if (wp_mkdir_p($upload_dir['path']))
$file = $upload_dir['path'] . '/' . $filename;
else
$file = $upload_dir['basedir'] . '/' . $filename;
file_put_contents($file,$image_data);
$wp_filetype = wp_check_filetype($filename,null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],'post_title' => $post_title,'post_content' => '','post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment,$file,$post_id);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id,$file);
$res1 = wp_update_attachment_metadata($attach_id,$attach_data);
$res2 = set_post_thumbnail($post_id,$attach_id);
}
//CSV
$fileHandle = @fopen("outgoingfeed_new.csv","r");
$count = 0;
if ($fileHandle) {
while (($row = fgetcsv($fileHandle,2048,",")) !== FALSE) {
if ($count > 0) {
$my_sku = "FRA-" . $row[0];
$item_name = $row[1];
$myDescription = $row[2];
$myBrand = $row[3];
$myTitle = $row[5];
$Gender = $row[8];
$real_price = $row[10];
$my_price = ((int)$row[10] * (int)15 / (int)100 + (int)22.44 + (int)$row[10]);
$my_image = $row[16];
$stock_status = "3";
if (wc_get_product_id_by_sku($my_sku) == 0) {
if ($my_image != "https://img.fragrancex.com/images/noimage_n1.gif") {
//insert product
$post_id = wp_insert_post(array(
'post_title' => $myTitle,'post_content' => $myDescription,'post_type' => 'product','post_status' => 'publish'
)
);
$product = wc_get_product($post_id);
$product->set_sku($my_sku);
$product->save();
update_post_meta($post_id,'_visibility','visible');
update_post_meta($post_id,'_sold_individually','no');
update_post_meta($post_id,'_manage_stock','yes');
update_post_meta($post_id,'_stock_status','instock');
wc_update_product_stock($post_id,3,'set'); // set 1000 in stock
update_post_meta($post_id,'total_sales','0');
update_post_meta($post_id,'_downloadable','_virtual','no');
update_post_meta($post_id,'_purchase_note','');
update_post_meta($post_id,'_featured','no');
update_post_meta($post_id,'_product_attributes',array());
update_post_meta($post_id,'_specifications_display_attributes','_specifications_attributes_title','_specifications','');
update_post_meta($post_id,'_fragrancex_item',$my_sku);
update_post_meta($post_id,'_Real_Price',$real_price);
update_post_meta($post_id,'_regular_price',$my_price);
update_post_meta($post_id,'_price',$my_price);
update_post_meta($post_id,'_woocommerce_gpf_data','a:2:{s:12:\"availability\";s:8:\"in stock\";s:5:\"brand\";s:7:\"' . $myBrand . '\";}');
//set shipping class
$shipping_class_id = 22455;
wp_set_post_terms($post_id,array($shipping_class_id),'product_shipping_class');
update_post_meta($post_id,'_backorders','no');
//set image and is title image
$post_title = get_the_title($post_id);
Generate_Featured_Image($my_image,$post_id);
update_post_meta($post_id,'_wp_attachment_image_alt',$post_title);
//category
if ($Gender == "Women") {
$categories = ['Perfumes','Women Perfumes'];
} elseif ($Gender == "Men") {
$categories = ['Perfumes','Men Perfumes'];
}
// Overwrite any existing term
wp_set_object_terms($post_id,$categories,'product_cat');
}
} //end if the product doesn't exist
} //end if count
$count++; // move to buttom
} //end CSV while loop -------------------------------
if (!feof($fileHandle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($fileHandle);
}
?>```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。