*/ namespace RankMath\WooCommerce; use RankMath\KB; use RankMath\Admin\Admin_Helper; use RankMath\Module\Base; use RankMath\Traits\Hooker; use RankMath\Helpers\Arr; defined( 'ABSPATH' ) || exit; /** * Admin class. */ class Admin extends Base { use Hooker; /** * The Constructor. */ public function __construct() { $directory = dirname( __FILE__ ); $this->config( [ 'id' => 'woocommerce', 'directory' => $directory, ] ); parent::__construct(); // Permalink Manager. $this->filter( 'rank_math/settings/general', 'add_general_settings' ); $this->filter( 'rank_math/flush_fields', 'flush_fields' ); $this->action( 'rank_math/admin/editor_scripts', 'enqueue' ); } /** * Enqueue script to analyze product's short description. */ public function enqueue() { $screen = get_current_screen(); if ( ! Admin_Helper::is_post_edit() || 'product' !== $screen->post_type || ! $this->do_filter( 'woocommerce/analyze_short_description', true ) ) { return; } wp_enqueue_script( 'rank-math-description-analysis', rank_math()->plugin_url() . 'includes/modules/woocommerce/assets/js/woocommerce.js', [ 'rank-math-editor' ], rank_math()->version, true ); } /** * Add module settings into general optional panel. * * @param array $tabs Array of option panel tabs. * * @return array */ public function add_general_settings( $tabs ) { Arr::insert( $tabs, [ 'woocommerce' => [ 'icon' => 'rm-icon rm-icon-cart', 'title' => esc_html__( 'WooCommerce', 'rank-math' ), /* translators: Link to kb article */ 'desc' => sprintf( esc_html__( 'Choose how you want Rank Math to handle your WooCommerce SEO. %s.', 'rank-math' ), '' . esc_html__( 'Learn more', 'rank-math' ) . '' ), 'file' => $this->directory . '/views/options-general.php', ], ], 7 ); return $tabs; } /** * Fields after updation of which we need to flush rewrite rules. * * @param array $fields Fields to flush rewrite rules on. * * @return array */ public function flush_fields( $fields ) { $fields[] = 'wc_remove_product_base'; $fields[] = 'wc_remove_category_base'; $fields[] = 'wc_remove_category_parent_slugs'; return $fields; } }