我试图通过自定义wordpress插件以编程方式生成woocommerce优惠券。
通常它可以工作并创建优惠券,但是一些优惠券添加选项仍然不起作用。例如,电子邮件限制和产品类别不会添加。在$ _POST上,它接收产品类别和电子邮件限制的数组但不起作用。
我也尝试过使用和不使用implode()但是相同。
这是我的代码:
function send_coupons_to_users_action() {
$couponname = $_POST['couponname'];
$discountpercent = $_POST['discountpercent'];
$categorycount = count($_POST['categoryname']);
$usercount = count($_POST['checkedusers']);
$categoryname = $_POST['categoryname'];
$emailrestrict = $_POST['checkedusers'];
/* -------- GENERATE COUPON ------------ */
$discount_type = 'percent';
$coupon = array(
'post_title' => $couponname,
'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', $discountpercent );
update_post_meta( $new_coupon_id, 'individual_use', 'yes' );
update_post_meta( $new_coupon_id, 'product_categories', $categoryname );
update_post_meta( $new_coupon_id, 'usage_limit_per_user', '1' );
update_post_meta( $new_coupon_id, 'usage_limit', $usercount );
update_post_meta( $new_coupon_id, 'expiry_date', '2017-05-09' );
update_post_meta( $new_coupon_id, 'email_restrictions', $emailrestrict );
echo 'Function End!';
}
它有什么问题?
*****更新*******
我解决了这个问题。如果有人需要,我会发布解决方案。
1)我试图发布类别slug,但是用类别ID改变了它,它开始工作了。
2)而不是:
update_post_meta( $new_coupon_id, 'email_restrictions', $emailrestrict );
使用:
update_post_meta( $new_coupon_id, 'customer_email', $emailrestrict );
所以它最终开始工作了。