Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Internal/Admin
File: Coupons.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* WooCommerce Marketing > Coupons.
[2] Fix | Delete
*/
[3] Fix | Delete
[4] Fix | Delete
namespace Automattic\WooCommerce\Internal\Admin;
[5] Fix | Delete
[6] Fix | Delete
use Automattic\WooCommerce\Admin\Features\Features;
[7] Fix | Delete
use Automattic\WooCommerce\Admin\PageController;
[8] Fix | Delete
[9] Fix | Delete
/**
[10] Fix | Delete
* Contains backend logic for the Coupons feature.
[11] Fix | Delete
*/
[12] Fix | Delete
class Coupons {
[13] Fix | Delete
[14] Fix | Delete
use CouponsMovedTrait;
[15] Fix | Delete
[16] Fix | Delete
/**
[17] Fix | Delete
* Class instance.
[18] Fix | Delete
*
[19] Fix | Delete
* @var Coupons instance
[20] Fix | Delete
*/
[21] Fix | Delete
protected static $instance = null;
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* Get class instance.
[25] Fix | Delete
*/
[26] Fix | Delete
public static function get_instance() {
[27] Fix | Delete
if ( ! self::$instance ) {
[28] Fix | Delete
self::$instance = new self();
[29] Fix | Delete
}
[30] Fix | Delete
return self::$instance;
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* Hook into WooCommerce.
[35] Fix | Delete
*/
[36] Fix | Delete
public function __construct() {
[37] Fix | Delete
if ( ! is_admin() ) {
[38] Fix | Delete
return;
[39] Fix | Delete
}
[40] Fix | Delete
[41] Fix | Delete
// If the main marketing feature is disabled, don't modify coupon behavior.
[42] Fix | Delete
if ( ! Features::is_enabled( 'marketing' ) ) {
[43] Fix | Delete
return;
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
// Only support coupon modifications if coupons are enabled.
[47] Fix | Delete
if ( ! wc_coupons_enabled() ) {
[48] Fix | Delete
return;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
add_action( 'admin_enqueue_scripts', array( $this, 'maybe_add_marketing_coupon_script' ) );
[52] Fix | Delete
add_action( 'woocommerce_register_post_type_shop_coupon', array( $this, 'move_coupons' ) );
[53] Fix | Delete
add_action( 'admin_head', array( $this, 'fix_coupon_menu_highlight' ), 99 );
[54] Fix | Delete
add_action( 'admin_menu', array( $this, 'maybe_add_coupon_menu_redirect' ) );
[55] Fix | Delete
}
[56] Fix | Delete
[57] Fix | Delete
/**
[58] Fix | Delete
* Maybe add menu item back in original spot to help people transition
[59] Fix | Delete
*/
[60] Fix | Delete
public function maybe_add_coupon_menu_redirect() {
[61] Fix | Delete
if ( ! $this->should_display_legacy_menu() ) {
[62] Fix | Delete
return;
[63] Fix | Delete
}
[64] Fix | Delete
[65] Fix | Delete
add_submenu_page(
[66] Fix | Delete
'woocommerce',
[67] Fix | Delete
__( 'Coupons', 'woocommerce' ),
[68] Fix | Delete
__( 'Coupons', 'woocommerce' ),
[69] Fix | Delete
'manage_options',
[70] Fix | Delete
'coupons-moved',
[71] Fix | Delete
array( $this, 'coupon_menu_moved' )
[72] Fix | Delete
);
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
/**
[76] Fix | Delete
* Call back for transition menu item
[77] Fix | Delete
*/
[78] Fix | Delete
public function coupon_menu_moved() {
[79] Fix | Delete
wp_safe_redirect( $this->get_legacy_coupon_url(), 301 );
[80] Fix | Delete
exit();
[81] Fix | Delete
}
[82] Fix | Delete
[83] Fix | Delete
/**
[84] Fix | Delete
* Modify registered post type shop_coupon
[85] Fix | Delete
*
[86] Fix | Delete
* @param array $args Array of post type parameters.
[87] Fix | Delete
*
[88] Fix | Delete
* @return array the filtered parameters.
[89] Fix | Delete
*/
[90] Fix | Delete
public function move_coupons( $args ) {
[91] Fix | Delete
$args['show_in_menu'] = current_user_can( 'manage_woocommerce' ) ? 'woocommerce-marketing' : true;
[92] Fix | Delete
return $args;
[93] Fix | Delete
}
[94] Fix | Delete
[95] Fix | Delete
/**
[96] Fix | Delete
* Undo WC modifications to $parent_file for 'shop_coupon'
[97] Fix | Delete
*/
[98] Fix | Delete
public function fix_coupon_menu_highlight() {
[99] Fix | Delete
global $parent_file, $post_type;
[100] Fix | Delete
[101] Fix | Delete
if ( $post_type === 'shop_coupon' ) {
[102] Fix | Delete
$parent_file = 'woocommerce-marketing'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride
[103] Fix | Delete
}
[104] Fix | Delete
}
[105] Fix | Delete
[106] Fix | Delete
/**
[107] Fix | Delete
* Maybe add our wc-admin coupon scripts if viewing coupon pages
[108] Fix | Delete
*/
[109] Fix | Delete
public function maybe_add_marketing_coupon_script() {
[110] Fix | Delete
$curent_screen = PageController::get_instance()->get_current_page();
[111] Fix | Delete
if ( ! isset( $curent_screen['id'] ) || $curent_screen['id'] !== 'woocommerce-coupons' ) {
[112] Fix | Delete
return;
[113] Fix | Delete
}
[114] Fix | Delete
[115] Fix | Delete
WCAdminAssets::register_style( 'marketing-coupons', 'style' );
[116] Fix | Delete
WCAdminAssets::register_script( 'wp-admin-scripts', 'marketing-coupons', true );
[117] Fix | Delete
}
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function