将优惠券百分比添加到WooCommerce中的购物车页面



我试图在购物车页面中显示优惠券百分比,但我收到了几个错误。

这是我的自定义代码:

// Add Coupon Percentage to Cart
function my_coupon_percentage_cart($value, $coupon)
{
if($coupon->discount_type == 'percent' && !empty($coupon->coupon_amount))
{
$amt = "<br><br><p><em><strong>{$coupon->coupon_amount}% OFF</strong></em></p>";   
}
return $value.$amt;
}
add_filter('woocommerce_cart_totals_coupon_html','my_coupon_percentage_cart',10,2);

以下是PHP错误:

[15-Sep-2022 13:55:13 UTC] discount_type was called incorrectly. Coupon properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action('wc_ajax_update_shipping_method'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::update_shipping_method, WC_AJAX::get_cart_totals, woocommerce_cart_totals, wc_get_template, include('/plugins/woocommerce/templates/cart/cart-totals.php'), wc_cart_totals_coupon_html, apply_filters('woocommerce_cart_totals_coupon_html'), WP_Hook->apply_filters, my_coupon_percentage_cart, WC_Legacy_Coupon->__get, wc_doing_it_wrong. This message was added in version 3.0.
[15-Sep-2022 13:55:13 UTC] coupon_amount was called incorrectly. Coupon properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action('wc_ajax_update_shipping_method'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::update_shipping_method, WC_AJAX::get_cart_totals, woocommerce_cart_totals, wc_get_template, include('/plugins/woocommerce/templates/cart/cart-totals.php'), wc_cart_totals_coupon_html, apply_filters('woocommerce_cart_totals_coupon_html'), WP_Hook->apply_filters, my_coupon_percentage_cart, WC_Legacy_Coupon->__get, wc_doing_it_wrong. This message was added in version 3.0.
[15-Sep-2022 13:55:13 UTC] coupon_amount was called incorrectly. Coupon properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action('wc_ajax_update_shipping_method'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::update_shipping_method, WC_AJAX::get_cart_totals, woocommerce_cart_totals, wc_get_template, include('/plugins/woocommerce/templates/cart/cart-totals.php'), wc_cart_totals_coupon_html, apply_filters('woocommerce_cart_totals_coupon_html'), WP_Hook->apply_filters, my_coupon_percentage_cart, WC_Legacy_Coupon->__get, wc_doing_it_wrong. This message was added in version 3.0.

知道我的代码可能出了什么问题吗?

您是在直接访问对象属性,而不是使用类似的方法

// Add Coupon Percentage to Cart
function my_coupon_percentage_cart($value, $coupon)
{
if($coupon->get_discount_type() == 'percent' && !empty($coupon->get_amount()))
{
$amt = "<br><br><p><em><strong>{$coupon->get_amount()}% OFF</strong></em></p>";   
}
return $value.$amt;
}
add_filter('woocommerce_cart_totals_coupon_html','my_coupon_percentage_cart',10,2);

最新更新