__construct(). */ public function __construct( &$plugin ) { $this->p =& $plugin; } public function suggest( $suggest_max = 2 ) { if ( $this->p->debug->enabled ) { $this->p->debug->log_args( array( 'suggest_max' => $suggest_max, ) ); } $suggested = 0; if ( ! current_user_can( 'manage_options' ) ) return $suggested; /* * Suggest integration and seo options, in that order. */ foreach ( array( 'integration', 'seo' ) as $suffix ) { $methodname = 'suggest_options_' . $suffix; $suggested = $suggested + $this->$methodname( $suggest_max - $suggested ); if ( $this->p->debug->enabled ) { $this->p->debug->log( $methodname . ' suggested = ' . $suggested ); } if ( $suggested >= $suggest_max ) break; } if ( $this->p->debug->enabled ) { $this->p->debug->log( 'return suggested = ' . $suggested ); } return $suggested; } private function suggest_options_integration( $suggest_max ) { $suggested = 0; /* * Image Dimension Checks. */ if ( empty( $this->p->options[ 'plugin_check_img_dims' ] ) ) { $notice_key = 'notice-check-img-dims-disabled'; if ( $this->p->notice->is_admin_pre_notices( $notice_key ) ) { if ( $notice_msg = $this->p->msgs->get( $notice_key ) ) { $this->p->notice->inf( $notice_msg, null, $notice_key, $dismiss_time = true ); if ( ++$suggested >= $suggest_max ) return $suggested; } } } /* * Inherit Featured Image for WooCommerce. */ if ( ! empty( $this->p->avail[ 'ecom' ][ 'woocommerce' ] ) ) { // WooCommerce plugin is active. if ( empty( $this->p->options[ 'plugin_inherit_featured' ] ) ) { $notice_key = 'notice-wc-inherit-featured-disabled'; if ( $this->p->notice->is_admin_pre_notices( $notice_key ) ) { if ( $notice_msg = $this->p->msgs->get( $notice_key ) ) { $this->p->notice->inf( $notice_msg, null, $notice_key, $dismiss_time = true ); if ( ++$suggested >= $suggest_max ) return $suggested; } } } } return $suggested; } private function suggest_options_seo( $suggest_max ) { $suggested = 0; if ( empty( $this->p->avail[ 'seo' ][ 'any' ] ) ) { // An SEO plugin is not active. /* * If the option is not checked and not disabled, then show a notice and return. */ foreach ( array( 'add_link_rel_canonical' => 'link rel canonical', 'add_link_rel_shortlink' => 'link rel shortlink', 'add_meta_name_description' => 'meta name description', 'add_meta_name_robots' => 'meta name robots', ) as $opt_key => $tag_name ) { $notice_key = 'suggest-options-seo-' . $opt_key; if ( ! empty( $this->p->options[ $opt_key ] ) ) continue; if ( ! empty( $this->p->options[ $opt_key . ':disabled' ] ) ) continue; if ( ! $this->p->notice->is_admin_pre_notices( $notice_key ) ) continue; $seo_other_tab_link = $this->p->util->get_admin_url( 'advanced#sucom-tabset_head_tags-tab_seo_other', _x( 'SSO', 'menu title', 'wpsso' ) . ' > ' . _x( 'Advanced Settings', 'lib file description', 'wpsso' ) . ' > ' . _x( 'HTML Tags', 'metabox title', 'wpsso' ) . ' > ' . _x( 'SEO / Other', 'metabox tab', 'wpsso' ) ); $notice_msg = sprintf( __( 'Please note that the %s HTML tag is currently disabled and a known SEO plugin has not been detected.', 'wpsso' ), '' . $tag_name . '' ) . ' '; $notice_msg .= sprintf( __( 'If another SEO plugin or your theme templates are not adding the %1$s HTML tag to your webpages, you should enable this option under the %2$s tab.', 'wpsso' ), '' . $tag_name . '', $seo_other_tab_link ) . ' '; $this->p->notice->inf( $notice_msg, null, $notice_key, $dismiss_time = true ); if ( ++$suggested >= $suggest_max ) return $suggested; } } return $suggested; } } }