2017-11-17 3 views
1

Meine Website gibt Benutzern dynamisch Gutscheine, wenn sie lange genug Mitglied waren. Wenn ich den Coupon generiere, möchte ich dem Coupon eine Beschreibung geben. Allerdings kann ich keine Beschreibung zuordnen, indem ich die Metadaten des Posts mit dem Schlüssel description aktualisiere, wie es die docs vorschlagen könnte.Stellen Sie eine Gutscheinbeschreibung in WooCommerce ein

Derzeit versuche ich die Beschreibung wie so zuweisen:

$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'); 

Wie sonst sollte ich über das Hinzufügen einer Beschreibung gehen?

+0

ich habe eine int maid eresing update, stattdessen verwenden Sie das WC_Coupon-Objekt und Methoden, um Ihren Gutschein zu erstellen ... – LoicTheAztec

+1

Awesome! Vielen Dank! Schade, ich kann dir nicht zwei +1 für deine Antwort geben –

Antwort

1

Die Coupon Beschreibung hat in den Post-Daten als post_excerpt Schlüssel (aber nicht in der Post Meta-Daten) ...

So Ihr Code sollte stattdessen hinzugefügt werden:

$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 

Or können Sie die WC_Coupon Object and methods statt:

// 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(); 
Verwandte Themen