如何从csv导入批量优惠券到woocommerce

时间:2014-04-30 11:19:45

标签: php csv woocommerce discount coupon

我正在尝试从csv文件中导入约1000个优惠券代码到woocoommerce

我已经使用过此代码,但它无效

此代码可以生成1个优惠券程序:

$coupon_code = 'UNIQUECODE'; // Code
$amount = '10'; // Amount
$discount_type = 'fixed_cart'; // Type: fixed_cart, percent, fixed_product, percent_product
$coupon = array(
'post_title' => $coupon_code,
'post_content' => '',
'post_status' => 'publish',
'post_author' => 1,
'post_type' => 'shop_coupon'
);
$new_coupon_id = wp_insert_post( $coupon );
// Add meta
update_post_meta( $new_coupon_id, 'discount_type', $discount_type );
update_post_meta( $new_coupon_id, 'coupon_amount', $amount );
update_post_meta( $new_coupon_id, 'individual_use', 'no' );
update_post_meta( $new_coupon_id, 'product_ids', '' );
update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );
update_post_meta( $new_coupon_id, 'usage_limit', '' );
update_post_meta( $new_coupon_id, 'expiry_date', '' );
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta( $new_coupon_id, 'free_shipping', 'no' );

我需要为csv文件的每一行执行此功能

你能帮助我吗,我今天需要解决方案。

1 个答案:

答案 0 :(得分:0)

如果有人仍在寻找答案,这可以通过每个循环完成。我不知道我头顶的确切功能,但步骤非常简单,谷歌会帮助你。

首先将CSV导入阵列。与MySQL查询的方式非常相似。

然后你做一个PHP foreach循环。

在循环内部,您可以使用填充teh数组变量的问题中的代码。例如,

 $coupon_code = '$array[code]'; // Code
 $amount = '$array[amount]'; // Amount
 $discount_type = '$array[discount_type]';

您还可以在meta部分中包含数组数据,如下所示:

 update_post_meta( $new_coupon_id, 'product_ids', $array[ids] );
 update_post_meta( $new_coupon_id, 'exclude_product_ids', $array[exclude] );
 update_post_meta( $new_coupon_id, 'usage_limit', $array[limit] );
 update_post_meta( $new_coupon_id, 'expiry_date', $array[expires] );

同样,这只是能够完成iCode98所要求的功能的一般概要。 php手册有很多信息,有很多关于将csv转换为数组和每个循环的教程。我可能对此有用,如果我构建它或者某人真的需要它,我会用一个工作示例更新它。

更新:

这应该可以工作,但它取决于输入文件

$file = fopen('myCSVFile.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements, This is where you would add the script above. 
  //Each column of the csv is in the array by id. So if you have: 
  //`a,b,c` Then `a=$line[0]` `b=$line[1]` `c=$line[2]` and so on.
}
fclose($file);