if ( ! empty( $feature_name ) ) { return $feature_name; } $view = defender_get_data_from_request( 'view', 'g' ); switch ( $view ) { case 'blocklist': return __( 'Custom IP Allow/Block list', 'defender-security' ); default: return __( 'AntiBot Global Firewall', 'defender-security' ); } } /** * Get UTM tags. * * @param string $page The page to load. * @param string $view The view to load. * @param bool $is_summary Is this from the Summary section? Default false. * * @return array */ private function get_utm_tags( string $page = '', string $view = '', bool $is_summary = false ): array { $utm_campaign = ''; $utm_content = ''; if ( ! empty( $page ) ) { switch ( $page ) { // There are buttons on notice or widget on the Dashboard page. case 'wp-defender': $utm_content = 'hub-connector'; $utm_campaign = ( 'dashboard' === $view ) ? 'defender_dashboard_firewall_antibot' : 'defender_onboarding_antibot'; break; case 'wdf-ip-lockout': $utm_content = 'hub-connector'; if ( $is_summary ) { $utm_campaign = 'defender_firewall_antibot_summary'; } else { $utm_campaign = ( 'blocklist' === $view ) ? 'defender_firewall_centralip' : 'defender_firewall_antibot'; } break; default: break; } } return array( 'utm_campaign' => $utm_campaign, 'utm_content' => $utm_content, ); } /** * Update data if a trigger is the Summary section. * * @param string $view The view to load. * * @return array */ private function maybe_summary_box_trigger( string $view ): array { return array( 'view' => 'summary-box' === $view ? 'global-ip' : $view, 'is_summary' => 'summary-box' === $view, ); } /** * Retrieve the Hub connector URL. * * @param string $page Optional. The page to load. Default is empty string. * @param string $view Optional. The view to load. Default is empty string. * * @return string */ public function get_url( string $page = '', string $view = '' ): string { if ( $this->is_dash_activated() ) { $args = array( 'page' => 'wpmudev', 'utm_source' => self::PLUGIN_IDENTIFIER, 'utm_medium' => 'plugin', ); $result = $this->maybe_summary_box_trigger( $view ); // Get advanced params. $res = $this->get_utm_tags( $page, $result['view'], $result['is_summary'] ); if ( ! empty( $res['utm_campaign'] ) ) { $args['utm_campaign'] = $res['utm_campaign']; } if ( ! empty( $res['utm_content'] ) ) { $args['utm_content'] = $res['utm_content']; } return add_query_arg( $args, network_admin_url( 'admin.php' ) ); } $query = array( '_def_nonce' => wp_create_nonce( self::CONNECTION_ACTION ), ); if ( ! empty( $page ) ) { $query['page'] = $page; } if ( ! empty( $view ) ) { $query['view'] = $view; } return add_query_arg( $query, network_admin_url( 'admin.php' ) ); } }