'.__("Support", 'analytics-tracker').''; return $links; } /** * Add plugin menu * * @since 1.0.0 * @access public */ public function analyticstracker_admin_menu() { add_menu_page( __('Google Analytics', 'analytics-tracker'), __('Google Analytics', 'analytics-tracker'), 'manage_options', 'analyticstracker-menu', array( $this, 'analyticstracker_options_page'), 'dashicons-chart-line' ); add_submenu_page( 'analyticstracker-menu', __('Other Products', 'analytics-tracker'), __('Other Products', 'analytics-tracker'), 'manage_options', 'analyticstracker-other-plugins', array( $this, 'analyticstracker_other_plugins' ) ); } /** * My others plugins * * @since 1.0.0 * @access public */ public function analyticstracker_other_plugins() { ?>

'section', 'id' => 'analyticstracker_section_settings_general', 'title' => '', 'callback' => 'analyticstracker_description_section_callback', 'page' => 'analyticstracker_page' ), array ( 'settings_type' => 'field', 'id' => 'analyticstracker_ga', 'title' => __( 'Google Analytics tracking ID', 'analytics-tracker' ), 'callback' => 'analyticstracker_settings_field_render', 'page' => 'analyticstracker_page', 'section' => 'analyticstracker_section_settings_general', 'args' => array ( 'id' => 'analyticstracker_ga', 'type' => 'text', 'class' => '', 'name' => 'analyticstracker_ga', 'value' => 'analyticstracker_ga', 'label_for' => '', 'description' => __( 'Add Google Analytics tracking ID (UA-XXXXXXX-YY). Where can I find my tracking ID?', 'analytics-tracker' ), ) ) ); } /** * Description Section callback * * @since 1.0.0 * @access public */ public function analyticstracker_description_section_callback( ) { } /* * Setting Initialization * * @since 1.0.0 * @access public */ public function analyticstracker_settings_init() { register_setting( 'analyticstracker_page', 'analyticstracker_settings' ); foreach ( $this->analyticstracker_settings() AS $setting ) { if ($setting['settings_type'] === 'section') { add_settings_section( $setting['id'], $setting['title'], array( $this, $setting['callback'] ), $setting['page'] ); } if ($setting['settings_type'] === 'field') { add_settings_field( $setting['id'], $setting['title'], array( $this, $setting['callback'] ), $setting['page'], $setting['section'], $setting['args'] ); } } } /** * Append a settings field to the the fields section. * * @since 1.0.0 * @access public * @param array $args */ public function analyticstracker_settings_field_render( array $options = array() ) { $saved_options = get_option( 'analyticstracker_settings' ); $atts = array( 'id' => $options['id'], 'type' => ( isset( $options['type'] ) ? $options['type'] : 'text' ), 'class' => $options['class'], 'name' => 'analyticstracker_settings[' . $options['name'] . ']', 'value' => ( array_key_exists( 'default', $options ) ? $options['default'] : null ), 'label_for' => ( array_key_exists( 'label_for', $options ) ? $options['label_for'] : false ), 'description' => ( array_key_exists( 'description', $options ) ? $options['description'] : false ) ); if ( isset( $options['id'] ) ) { if (isset($saved_options[$options['id']]) ) { $val = $saved_options[$options['id']]; } else { $val = ( array_key_exists( 'default', $options ) ? $options['default'] : "" ); } $atts['value'] = $val; } /** * Input type text */ if ($atts['type'] == 'text') { $html = sprintf( '', $atts['type'], $atts['class'], $atts['id'], $atts['name'], $atts['value'] ); if ( array_key_exists( 'description', $atts ) ){ $html .= sprintf( '

%1$s

', $atts['description'] ); } echo $html; } } /** * Generate settings form * * @since 1.0.0 * @access public */ public function analyticstracker_options_page() { ?>