在 WooCommerce 中设置优惠券描述
Set a coupon description in WooCommerce
如果用户成为会员的时间足够长,我的网站会动态地提供优惠券。当我生成优惠券时,我想为优惠券分配一个描述。但是,我似乎无法通过使用密钥 description
更新 post 的元数据来分配描述,因为 docs 建议我应该能够这样做。
目前我正在尝试像这样分配描述:
$percent = 25;//DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; //Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
//ASSIGN COUPON AND DISCOUNT PERCENTAGE
$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 );//SET DICOUNT TO BE PERCENTAGE BASED
update_post_meta( $new_coupon_id, 'coupon_amount', $percent );//SET DISCOUNT PERCENTAGE
update_post_meta( $new_coupon_id, 'individual_use', 'yes' );//ONLY ONE CUPON BE USED AT A TIME
update_post_meta( $new_coupon_id, 'product_ids', '' ); //INCLUDE ALL PRODUCTS
update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );//DO NOT EXCLUDE ANY PRODUCTS
update_post_meta( $new_coupon_id, 'usage_limit', '1' );//ONE TIME USE
update_post_meta( $new_coupon_id, 'expiry_date', strtotime("+6 months") );
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta( $new_coupon_id, 'free_shipping', 'no' );//DO NOT GIVE FREE SHIPPING
//ASSIGN DESCRIPTION TO COUPON
update_post_meta( $new_coupon_id, 'description', 'This is an example description used for the example coupon');
我还应该如何添加描述?
必须在 post 数据中添加优惠券描述作为 post_excerpt
键 (但不在 post元数据)…
所以你的代码应该是:
$percent = 25;//DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; //Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
$description = __('This is an example description used for the example coupon');
//ASSIGN COUPON AND DISCOUNT PERCENTAGE
$coupon = array(
'post_title' => $coupon_code,
'post_content' => '',
'post_excerpt' => $description, // <== HERE goes the description
'post_status' => 'publish',
'post_author' => 1,
'post_type' => 'shop_coupon'
);
$new_coupon_id = wp_insert_post( $coupon );
## … / … and so on
或者,从 WooCommerce 3 开始,您可以使用任何 related method on a WC_Coupon
对象。在您的情况下,您将使用 setter 方法来设置数据 (因为 getter 方法用于获取现有优惠券对象上的数据):
// Get an instance of the WC_Coupon object
$wc_coupon = new WC_Coupon($coupon_code);
// Some data
$percent = 25; // DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; // Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
$description = __('This is an example description used for the example coupon'); // Description
// Set the coupon data
$wc_coupon->set_code($coupon_code);
$wc_coupon->set_description($description);
$wc_coupon->set_discount_type($discount_type);
$wc_coupon->set_amount( floatval($percent) );
$wc_coupon->set_individual_use( true );
$wc_coupon->set_usage_limit( 1 );
$wc_coupon->set_date_expires( strtotime("+6 months") );
## $wc_coupon->apply_before_tax( true ); // ==> Deprecated in WC 3+ with no replacement alternatie
$wc_coupon->set_free_shipping( false );
// Test raw data output before save
var_dump($wc_coupon);
// SAVE the coupon
$wc_coupon->save();
如果用户成为会员的时间足够长,我的网站会动态地提供优惠券。当我生成优惠券时,我想为优惠券分配一个描述。但是,我似乎无法通过使用密钥 description
更新 post 的元数据来分配描述,因为 docs 建议我应该能够这样做。
目前我正在尝试像这样分配描述:
$percent = 25;//DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; //Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
//ASSIGN COUPON AND DISCOUNT PERCENTAGE
$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 );//SET DICOUNT TO BE PERCENTAGE BASED
update_post_meta( $new_coupon_id, 'coupon_amount', $percent );//SET DISCOUNT PERCENTAGE
update_post_meta( $new_coupon_id, 'individual_use', 'yes' );//ONLY ONE CUPON BE USED AT A TIME
update_post_meta( $new_coupon_id, 'product_ids', '' ); //INCLUDE ALL PRODUCTS
update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );//DO NOT EXCLUDE ANY PRODUCTS
update_post_meta( $new_coupon_id, 'usage_limit', '1' );//ONE TIME USE
update_post_meta( $new_coupon_id, 'expiry_date', strtotime("+6 months") );
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta( $new_coupon_id, 'free_shipping', 'no' );//DO NOT GIVE FREE SHIPPING
//ASSIGN DESCRIPTION TO COUPON
update_post_meta( $new_coupon_id, 'description', 'This is an example description used for the example coupon');
我还应该如何添加描述?
必须在 post 数据中添加优惠券描述作为 post_excerpt
键 (但不在 post元数据)…
所以你的代码应该是:
$percent = 25;//DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; //Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
$description = __('This is an example description used for the example coupon');
//ASSIGN COUPON AND DISCOUNT PERCENTAGE
$coupon = array(
'post_title' => $coupon_code,
'post_content' => '',
'post_excerpt' => $description, // <== HERE goes the description
'post_status' => 'publish',
'post_author' => 1,
'post_type' => 'shop_coupon'
);
$new_coupon_id = wp_insert_post( $coupon );
## … / … and so on
或者,从 WooCommerce 3 开始,您可以使用任何 related method on a WC_Coupon
对象。在您的情况下,您将使用 setter 方法来设置数据 (因为 getter 方法用于获取现有优惠券对象上的数据):
// Get an instance of the WC_Coupon object
$wc_coupon = new WC_Coupon($coupon_code);
// Some data
$percent = 25; // DISCOUNT PERCENTAGE
$coupon_code = 'testcoupon'; // Coupon Code
$discount_type = 'percent'; // Type: fixed_cart, percent, fixed_product, percent_product
$description = __('This is an example description used for the example coupon'); // Description
// Set the coupon data
$wc_coupon->set_code($coupon_code);
$wc_coupon->set_description($description);
$wc_coupon->set_discount_type($discount_type);
$wc_coupon->set_amount( floatval($percent) );
$wc_coupon->set_individual_use( true );
$wc_coupon->set_usage_limit( 1 );
$wc_coupon->set_date_expires( strtotime("+6 months") );
## $wc_coupon->apply_before_tax( true ); // ==> Deprecated in WC 3+ with no replacement alternatie
$wc_coupon->set_free_shipping( false );
// Test raw data output before save
var_dump($wc_coupon);
// SAVE the coupon
$wc_coupon->save();