* A Trait to help with managing the legacy coupon menu.
namespace Automattic\WooCommerce\Internal\Admin;
use Automattic\WooCommerce\Admin\Features\Features;
* CouponsMovedTrait trait.
trait CouponsMovedTrait {
* The GET query key for the legacy menu.
protected static $query_key = 'legacy_coupon_menu';
* The key for storing an option in the DB.
protected static $option_key = 'wc_admin_show_legacy_coupon_menu';
* Get the URL for the legacy coupon management.
* @return string The unescaped URL for the legacy coupon management page.
protected static function get_legacy_coupon_url() {
return self::get_coupon_url( [ self::$query_key => true ] );
* Get the URL for the coupon management page.
* @param array $args Additional URL query arguments.
protected static function get_coupon_url( $args = [] ) {
'post_type' => 'shop_coupon',
return add_query_arg( $args, admin_url( 'edit.php' ) );
* Get the new URL for managing coupons.
* @param string $page The management page.
protected static function get_management_url( $page ) {
return self::get_coupon_url();
$path = self::get_marketing_path();
return "wc-admin&path={$path}";
* Get the WC Admin path for the marking page.
protected static function get_marketing_path() {
return '/marketing/overview';
* Whether we should display the legacy coupon menu item.
protected static function should_display_legacy_menu() {
* Filter to determine whether to display the legacy coupon menu item.
* @param bool $display Whether the menu should be displayed or not.
'wc_admin_show_legacy_coupon_menu',
! Features::is_enabled( 'navigation' )
* Set whether we should display the legacy coupon menu item.
* @deprecated 10.5.0 No longer in use.
* @param bool $display Whether the menu should be displayed or not.
protected static function display_legacy_menu( $display = false ) {
update_option( self::$option_key, $display ? 1 : 0 );