register_settings(); /* Vars */ $page_hook_id = $this->settings_page_id; /* Do stuff in settings page, such as adding scripts, etc. */ if ( ! empty( $this->settings_page ) ) { /* Load the JavaScript needed for the settings screen. */ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_filter( 'screen_layout_columns', array( $this, 'screen_layout_column' ), 10, 2 ); add_action( $this->settings_page_id . '_settings_page_boxes', array( $this, 'add_required_meta_boxes' ) ); } } public function register_settings() { // overide in extended class } public function enqueue_scripts( $hook_suffix ) { $page_hook_id = $this->settings_page_id; if ( $hook_suffix === $page_hook_id ) { wp_enqueue_script( 'common' ); wp_enqueue_script( 'wp-lists' ); wp_enqueue_script( 'postbox' ); $page_hook_id = $this->settings_page_id; $confirm_text = esc_html__( 'Are you sure want to do this?', 'ai-descriptions-for-woocommerce' ); $inline_script = "jQuery(document).ready(function ($) { $('.if-js-closed').removeClass('if-js-closed').addClass('closed'); postboxes.add_postbox_toggles('" . esc_html( $page_hook_id ) . "'); $('#fx-smb-form').submit(function() { $('#publishing-action .spinner').css('visibility', 'visible'); }); $('#delete-action *').on('click', function() { return confirm('" . esc_html( $confirm_text ) . "'); }); });"; wp_add_inline_script( 'common', $inline_script ); } } public function screen_layout_column( $columns, $screen ) { $page_hook_id = $this->settings_page_id; if ( $screen === $page_hook_id ) { $columns[ $page_hook_id ] = 2; } return $columns; } public function settings_page() { /* global vars */ global $hook_suffix; if ( $this->settings_page_id === $hook_suffix ) { /* enable add_meta_boxes function in this page. */ do_action( $this->settings_page_id . '_settings_page_boxes', $hook_suffix ); ?>