You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.5 KiB
PHP

<?php
/**
* The WooCommerce module - admin side functionality.
*
* @since 0.9.0
* @package RankMath
* @subpackage RankMath\WooCommerce
* @author Rank Math <support@rankmath.com>
*/
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' ), '<a href="' . KB::get( 'woocommerce-settings', 'Options Panel WooCommerce Tab' ) . '" target="_blank">' . esc_html__( 'Learn more', 'rank-math' ) . '</a>' ),
'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;
}
}