本文整理汇总了PHP中WC_Coupon::add_coupon_message方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Coupon::add_coupon_message方法的具体用法?PHP WC_Coupon::add_coupon_message怎么用?PHP WC_Coupon::add_coupon_message使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WC_Coupon
的用法示例。
在下文中一共展示了WC_Coupon::add_coupon_message方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: woocommerce_after_checkout_validation
/**
* Performs coupon checks after checkout validation.
*
* @param array $posted posted form data
*/
public static function woocommerce_after_checkout_validation($posted)
{
global $woocommerce;
if (isset($woocommerce->cart)) {
$cart = $woocommerce->cart;
if (!empty($cart->applied_coupons)) {
if (method_exists('Affiliates_Attributes_WordPress', 'get_affiliate_for_coupon')) {
$valid = true;
$emails = array($posted['billing_email']);
if (is_user_logged_in()) {
$current_user = wp_get_current_user();
$emails[] = $current_user->user_email;
}
$emails = array_map('sanitize_email', array_map('strtolower', $emails));
self::remove_filters();
foreach ($cart->applied_coupons as $key => $code) {
$coupon = new WC_Coupon($code);
if (!is_wp_error($coupon->is_valid())) {
if ($affiliate_id = Affiliates_Attributes_WordPress::get_affiliate_for_coupon($coupon->code)) {
if ($user_id = get_current_user_id()) {
if ($affiliate_ids = affiliates_get_user_affiliate($user_id)) {
if (in_array($affiliate_id, $affiliate_ids)) {
$valid = false;
break;
}
}
}
if ($affiliate = affiliates_get_affiliate($affiliate_id)) {
if (isset($affiliate['email']) && in_array(strtolower($affiliate['email']), $emails)) {
$valid = false;
break;
}
}
}
}
}
self::add_filters();
if (!$valid) {
$coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_INVALID_REMOVED);
unset($cart->applied_coupons[$key]);
$woocommerce->session->coupon_codes = $cart->applied_coupons;
$woocommerce->session->refresh_totals = true;
}
}
}
}
}
示例2: add_discount
/**
* Applies a coupon code passed to the method.
*
* @param string $coupon_code - The code to apply
* @return bool True if the coupon is applied, false if it does not exist or cannot be applied
*/
public function add_discount($coupon_code)
{
// Coupons are globally disabled
if (!wc_coupons_enabled()) {
return false;
}
// Sanitize coupon code
$coupon_code = apply_filters('woocommerce_coupon_code', $coupon_code);
// Get the coupon
$the_coupon = new WC_Coupon($coupon_code);
// Check it can be used with cart
if (!$the_coupon->is_valid()) {
wc_add_notice($the_coupon->get_error_message(), 'error');
return false;
}
// Check if applied
if ($this->has_discount($coupon_code)) {
$the_coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_ALREADY_APPLIED);
return false;
}
// If its individual use then remove other coupons
if ($the_coupon->get_individual_use()) {
$this->applied_coupons = apply_filters('woocommerce_apply_individual_use_coupon', array(), $the_coupon, $this->applied_coupons);
}
if ($this->applied_coupons) {
foreach ($this->applied_coupons as $code) {
$coupon = new WC_Coupon($code);
if ($coupon->get_individual_use() && false === apply_filters('woocommerce_apply_with_individual_use_coupon', false, $the_coupon, $coupon, $this->applied_coupons)) {
// Reject new coupon
$coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_ALREADY_APPLIED_INDIV_USE_ONLY);
return false;
}
}
}
$this->applied_coupons[] = $coupon_code;
// Choose free shipping
if ($the_coupon->get_free_shipping()) {
$packages = WC()->shipping->get_packages();
$chosen_shipping_methods = WC()->session->get('chosen_shipping_methods');
foreach ($packages as $i => $package) {
$chosen_shipping_methods[$i] = 'free_shipping';
}
WC()->session->set('chosen_shipping_methods', $chosen_shipping_methods);
}
$the_coupon->add_coupon_message(WC_Coupon::WC_COUPON_SUCCESS);
do_action('woocommerce_applied_coupon', $coupon_code);
return true;
}
示例3: add_discount
/**
* Applies a coupon code passed to the method.
*
* @param string $coupon_code - The code to apply
* @return bool True if the coupon is applied, false if it does not exist or cannot be applied
*/
public function add_discount($coupon_code)
{
global $woocommerce;
// Coupons are globally disabled
if (!$woocommerce->cart->coupons_enabled()) {
return false;
}
// Sanitize coupon code
$coupon_code = apply_filters('woocommerce_coupon_code', $coupon_code);
// Get the coupon
$the_coupon = new WC_Coupon($coupon_code);
if ($the_coupon->id) {
// Check it can be used with cart
if (!$the_coupon->is_valid()) {
$woocommerce->add_error($the_coupon->get_error_message());
return false;
}
// Check if applied
if ($woocommerce->cart->has_discount($coupon_code)) {
$the_coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_ALREADY_APPLIED);
return false;
}
// If its individual use then remove other coupons
if ($the_coupon->individual_use == 'yes') {
$this->applied_coupons = apply_filters('woocommerce_apply_individual_use_coupon', array(), $the_coupon, $this->applied_coupons);
}
if ($this->applied_coupons) {
foreach ($this->applied_coupons as $code) {
$existing_coupon = new WC_Coupon($code);
if ($existing_coupon->individual_use == 'yes' && false === apply_filters('woocommerce_apply_with_individual_use_coupon', false, $the_coupon, $existing_coupon, $this->applied_coupons)) {
// Reject new coupon
$existing_coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_ALREADY_APPLIED_INDIV_USE_ONLY);
return false;
}
}
}
$this->applied_coupons[] = $coupon_code;
// Choose free shipping
if ($the_coupon->enable_free_shipping()) {
$woocommerce->session->chosen_shipping_method = 'free_shipping';
}
$this->calculate_totals();
$the_coupon->add_coupon_message(WC_Coupon::WC_COUPON_SUCCESS);
do_action('woocommerce_applied_coupon', $coupon_code);
return true;
} else {
$the_coupon->add_coupon_message(WC_Coupon::E_WC_COUPON_NOT_EXIST);
return false;
}
return false;
}