Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/leadin/public/admin
File: class-leadinadmin.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace Leadin\admin;
[2] Fix | Delete
[3] Fix | Delete
use Leadin\AssetsManager;
[4] Fix | Delete
use Leadin\data\User;
[5] Fix | Delete
use Leadin\admin\Connection;
[6] Fix | Delete
use Leadin\data\User_Metadata;
[7] Fix | Delete
use Leadin\admin\MenuConstants;
[8] Fix | Delete
use Leadin\admin\Gutenberg;
[9] Fix | Delete
use Leadin\admin\NoticeManager;
[10] Fix | Delete
use Leadin\admin\PluginActionsManager;
[11] Fix | Delete
use Leadin\admin\DeactivationForm;
[12] Fix | Delete
use Leadin\admin\Links;
[13] Fix | Delete
use Leadin\admin\ContentEmbedInstaller;
[14] Fix | Delete
use Leadin\auth\OAuth;
[15] Fix | Delete
use Leadin\admin\utils\Background;
[16] Fix | Delete
use Leadin\utils\QueryParameters;
[17] Fix | Delete
use Leadin\utils\Versions;
[18] Fix | Delete
use Leadin\includes\utils as utils;
[19] Fix | Delete
[20] Fix | Delete
use Leadin\data\Portal_Options;
[21] Fix | Delete
use Leadin\data\Filters;
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* Class responsible for initializing the admin side of the plugin.
[25] Fix | Delete
*/
[26] Fix | Delete
class LeadinAdmin {
[27] Fix | Delete
[28] Fix | Delete
const REDIRECT_TRANSIENT = 'leadin_redirect_after_activation';
[29] Fix | Delete
[30] Fix | Delete
/**
[31] Fix | Delete
* Class constructor, adds all the hooks and instantiate the APIs.
[32] Fix | Delete
*/
[33] Fix | Delete
public function __construct() {
[34] Fix | Delete
add_action( 'plugins_loaded', array( $this, 'load_languages' ), 14 );
[35] Fix | Delete
add_action( 'admin_init', array( $this, 'redirect_after_activation' ) );
[36] Fix | Delete
add_action( 'admin_init', array( $this, 'store_activation_time' ) );
[37] Fix | Delete
add_action( 'admin_init', array( $this, 'authorize' ) );
[38] Fix | Delete
add_action( 'admin_init', array( $this, 'check_review_requested' ) );
[39] Fix | Delete
add_action( 'admin_menu', array( $this, 'build_menu' ) );
[40] Fix | Delete
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
[41] Fix | Delete
register_activation_hook( LEADIN_BASE_PATH, array( $this, 'do_activate_action' ) );
[42] Fix | Delete
[43] Fix | Delete
/**
[44] Fix | Delete
* The following hooks are public APIs.
[45] Fix | Delete
*/
[46] Fix | Delete
add_action( 'leadin_redirect', array( $this, 'set_redirect_transient' ) );
[47] Fix | Delete
add_action( 'leadin_activate', array( $this, 'do_redirect_action' ), 100 );
[48] Fix | Delete
[49] Fix | Delete
new PluginActionsManager();
[50] Fix | Delete
new DeactivationForm();
[51] Fix | Delete
new NoticeManager();
[52] Fix | Delete
new Gutenberg();
[53] Fix | Delete
new ContentEmbedInstaller();
[54] Fix | Delete
add_action( 'elementor/documents/register_controls', array( $this, 'register_document_controls' ) );
[55] Fix | Delete
}
[56] Fix | Delete
[57] Fix | Delete
/**
[58] Fix | Delete
* Register additional document controls.
[59] Fix | Delete
*
[60] Fix | Delete
* @param \Elementor\Core\DocumentTypes\PageBase $document The PageBase document instance.
[61] Fix | Delete
*/
[62] Fix | Delete
public function register_document_controls( $document ) {
[63] Fix | Delete
if ( ! $document instanceof \Elementor\Core\DocumentTypes\PageBase || ! $document::get_property( 'has_elements' ) ) {
[64] Fix | Delete
return;
[65] Fix | Delete
}
[66] Fix | Delete
[67] Fix | Delete
$document->start_controls_section(
[68] Fix | Delete
'hubspot',
[69] Fix | Delete
array(
[70] Fix | Delete
'label' => esc_html__( 'Hubspot', 'leadin' ),
[71] Fix | Delete
'tab' => \Elementor\Controls_Manager::TAB_SETTINGS,
[72] Fix | Delete
)
[73] Fix | Delete
);
[74] Fix | Delete
[75] Fix | Delete
$document->add_control(
[76] Fix | Delete
'content_type',
[77] Fix | Delete
array(
[78] Fix | Delete
'label' => esc_html__( 'Select the content type HubSpot Analytics uses to track this page', 'leadin' ),
[79] Fix | Delete
'label_block' => true,
[80] Fix | Delete
'type' => \Elementor\Controls_Manager::SELECT,
[81] Fix | Delete
'options' => array(
[82] Fix | Delete
'' => esc_html__( 'Detect Automatically', 'leadin' ),
[83] Fix | Delete
'blog-post' => esc_html__( 'Blog Post', 'leadin' ),
[84] Fix | Delete
'knowledge-article' => esc_html__( 'Knowledge Article', 'leadin' ),
[85] Fix | Delete
'landing-page' => esc_html__( 'Landing Page', 'leadin' ),
[86] Fix | Delete
'listing-page' => esc_html__( 'Listing Page', 'leadin' ),
[87] Fix | Delete
'standard-page' => esc_html__( 'Standard Page', 'leadin' ),
[88] Fix | Delete
),
[89] Fix | Delete
'default' => '',
[90] Fix | Delete
)
[91] Fix | Delete
);
[92] Fix | Delete
[93] Fix | Delete
$document->end_controls_section();
[94] Fix | Delete
}
[95] Fix | Delete
[96] Fix | Delete
[97] Fix | Delete
[98] Fix | Delete
/**
[99] Fix | Delete
* Load the .mo language files.
[100] Fix | Delete
*/
[101] Fix | Delete
public function load_languages() {
[102] Fix | Delete
load_plugin_textdomain( 'leadin', false, '/leadin/languages' );
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* Handler called on plugin activation.
[107] Fix | Delete
*/
[108] Fix | Delete
public function do_activate_action() {
[109] Fix | Delete
\do_action( 'leadin_activate' );
[110] Fix | Delete
}
[111] Fix | Delete
[112] Fix | Delete
/**
[113] Fix | Delete
* Handler for the leadin_activate action.
[114] Fix | Delete
*/
[115] Fix | Delete
public function do_redirect_action() {
[116] Fix | Delete
\do_action( 'leadin_redirect' );
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
/**
[120] Fix | Delete
* Set transient after activating the plugin.
[121] Fix | Delete
*/
[122] Fix | Delete
public function set_redirect_transient() {
[123] Fix | Delete
set_transient( self::REDIRECT_TRANSIENT, true, 60 );
[124] Fix | Delete
}
[125] Fix | Delete
[126] Fix | Delete
/**
[127] Fix | Delete
* Redirect to the dashboard after activation.
[128] Fix | Delete
*/
[129] Fix | Delete
public function redirect_after_activation() {
[130] Fix | Delete
if ( get_transient( self::REDIRECT_TRANSIENT ) ) {
[131] Fix | Delete
delete_transient( self::REDIRECT_TRANSIENT );
[132] Fix | Delete
wp_safe_redirect( admin_url( 'admin.php?page=leadin' ) );
[133] Fix | Delete
exit;
[134] Fix | Delete
}
[135] Fix | Delete
}
[136] Fix | Delete
[137] Fix | Delete
/**
[138] Fix | Delete
* Connect/disconnect the plugin
[139] Fix | Delete
*/
[140] Fix | Delete
public function authorize() {
[141] Fix | Delete
if ( User::is_admin() ) {
[142] Fix | Delete
if ( Connection::is_connection_requested() ) {
[143] Fix | Delete
$redirect_params = array();
[144] Fix | Delete
Connection::oauth_connect();
[145] Fix | Delete
$redirect_params['leadin_just_connected'] = 1;
[146] Fix | Delete
[147] Fix | Delete
if ( Connection::is_new_portal() ) {
[148] Fix | Delete
$redirect_params['is_new_portal'] = 1;
[149] Fix | Delete
}
[150] Fix | Delete
Routing::redirect( MenuConstants::USER_GUIDE, $redirect_params );
[151] Fix | Delete
} elseif ( Connection::is_disconnection_requested() ) {
[152] Fix | Delete
Connection::disconnect();
[153] Fix | Delete
Routing::redirect( MenuConstants::ROOT );
[154] Fix | Delete
}
[155] Fix | Delete
}
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
/**
[159] Fix | Delete
* Check if query parameter for review is present on the request
[160] Fix | Delete
* then add user metadata to persist review time
[161] Fix | Delete
* Redirects if value is equal to true
[162] Fix | Delete
*/
[163] Fix | Delete
public function check_review_requested() {
[164] Fix | Delete
if ( Connection::is_connected() && Routing::has_review_request() ) {
[165] Fix | Delete
User_Metadata::set_skip_review( time() );
[166] Fix | Delete
if ( Routing::is_review_request() ) {
[167] Fix | Delete
header( 'Location: https://survey.hsforms.com/1ILAEu_k_Ttiy344dpHM--w1h' );
[168] Fix | Delete
exit();
[169] Fix | Delete
}
[170] Fix | Delete
}
[171] Fix | Delete
}
[172] Fix | Delete
[173] Fix | Delete
/**
[174] Fix | Delete
* Store activation time in a WP option.
[175] Fix | Delete
*/
[176] Fix | Delete
public function store_activation_time() {
[177] Fix | Delete
if ( empty( Portal_Options::get_activation_time() ) ) {
[178] Fix | Delete
Portal_Options::set_activation_time();
[179] Fix | Delete
}
[180] Fix | Delete
}
[181] Fix | Delete
[182] Fix | Delete
/**
[183] Fix | Delete
* Adds scripts for the admin section.
[184] Fix | Delete
*/
[185] Fix | Delete
public function enqueue_scripts() {
[186] Fix | Delete
AssetsManager::register_assets();
[187] Fix | Delete
AssetsManager::enqueue_admin_assets();
[188] Fix | Delete
if ( get_current_screen()->id === 'plugins' ) {
[189] Fix | Delete
AssetsManager::enqueue_feedback_assets();
[190] Fix | Delete
}
[191] Fix | Delete
}
[192] Fix | Delete
[193] Fix | Delete
/**
[194] Fix | Delete
* Adds Leadin menu to admin sidebar
[195] Fix | Delete
*/
[196] Fix | Delete
public function build_menu() {
[197] Fix | Delete
if ( Connection::is_connected() ) {
[198] Fix | Delete
add_menu_page( __( 'HubSpot', 'leadin' ), __( 'HubSpot', 'leadin' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::ROOT, array( $this, 'build_integrated_app' ), 'dashicons-sprocket', '25.100713' );
[199] Fix | Delete
[200] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'User Guide', 'leadin' ), __( 'User Guide', 'leadin' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::USER_GUIDE, array( $this, 'build_integrated_app' ) );
[201] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Forms', 'leadin' ), __( 'Forms', 'leadin' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::FORMS, array( $this, 'build_integrated_app' ) );
[202] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Live Chat', 'leadin' ), __( 'Live Chat', 'leadin' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::CHATFLOWS, array( $this, 'build_integrated_app' ) );
[203] Fix | Delete
[204] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Contacts', 'leadin' ), self::make_external_link( Links::get_iframe_src( MenuConstants::CONTACTS ), __( 'Contacts', 'leadin' ), 'leadin_contacts_link' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::CONTACTS, array( $this, 'build_app' ) );
[205] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Email', 'leadin' ), self::make_external_link( Links::get_iframe_src( MenuConstants::EMAIL ), __( 'Email', 'leadin' ), 'leadin_email_link' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::EMAIL, array( $this, 'build_app' ) );
[206] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Lists', 'leadin' ), self::make_external_link( Links::get_iframe_src( MenuConstants::LISTS ), __( 'Lists', 'leadin' ), 'leadin_lists_link' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::LISTS, array( $this, 'build_app' ) );
[207] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Reporting', 'leadin' ), self::make_external_link( Links::get_iframe_src( MenuConstants::REPORTING ), __( 'Reporting', 'leadin' ), 'leadin_reporting_link' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::REPORTING, array( $this, 'build_app' ) );
[208] Fix | Delete
[209] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Settings', 'leadin' ), __( 'Settings', 'leadin' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::SETTINGS, array( $this, 'build_integrated_app' ) );
[210] Fix | Delete
[211] Fix | Delete
add_submenu_page( MenuConstants::ROOT, __( 'Upgrade', 'leadin' ), self::make_external_link( Links::get_iframe_src( MenuConstants::PRICING ), __( 'Upgrade', 'leadin' ), 'leadin_pricing_link' ), Filters::apply_view_plugin_menu_capability_filters(), MenuConstants::PRICING, array( $this, 'build_app' ) );
[212] Fix | Delete
[213] Fix | Delete
remove_submenu_page( MenuConstants::ROOT, MenuConstants::ROOT );
[214] Fix | Delete
} else {
[215] Fix | Delete
$notification_icon = ' <span class="update-plugins count-1"><span class="plugin-count">!</span></span>';
[216] Fix | Delete
add_menu_page( __( 'HubSpot', 'leadin' ), __( 'HubSpot', 'leadin' ) . $notification_icon, Filters::apply_connect_plugin_capability_filters(), MenuConstants::ROOT, array( $this, 'build_integrated_app' ), 'dashicons-sprocket', '25.100713' );
[217] Fix | Delete
}
[218] Fix | Delete
}
[219] Fix | Delete
[220] Fix | Delete
[221] Fix | Delete
/**
[222] Fix | Delete
* Wraps external link.
[223] Fix | Delete
*
[224] Fix | Delete
* @param String $href link destination.
[225] Fix | Delete
* @param String $content link content.
[226] Fix | Delete
* @param String $class class for ATs.
[227] Fix | Delete
*/
[228] Fix | Delete
public function make_external_link( $href, $content, $class ) {
[229] Fix | Delete
return "<a href=\"$href\" class=\"external_link $class\" target=\"_blank\" onclick=\"blur()\">$content</a>";
[230] Fix | Delete
}
[231] Fix | Delete
[232] Fix | Delete
/**
[233] Fix | Delete
* Renders the leadin admin page.
[234] Fix | Delete
*/
[235] Fix | Delete
public function build_app() {
[236] Fix | Delete
AssetsManager::enqueue_bridge_assets();
[237] Fix | Delete
self::render_app();
[238] Fix | Delete
}
[239] Fix | Delete
[240] Fix | Delete
/**
[241] Fix | Delete
* Renders the integrated forms app.
[242] Fix | Delete
*/
[243] Fix | Delete
public function build_integrated_app() {
[244] Fix | Delete
AssetsManager::enqueue_integrated_app_assets();
[245] Fix | Delete
self::render_app();
[246] Fix | Delete
}
[247] Fix | Delete
[248] Fix | Delete
/**
[249] Fix | Delete
* Render app container
[250] Fix | Delete
*/
[251] Fix | Delete
public function render_app() {
[252] Fix | Delete
$error_message = '';
[253] Fix | Delete
[254] Fix | Delete
if ( Versions::is_php_version_not_supported() ) {
[255] Fix | Delete
$error_message = sprintf(
[256] Fix | Delete
__( 'HubSpot All-In-One Marketing %1$s requires PHP %2$s or higher Please upgrade WordPress first', 'leadin' ),
[257] Fix | Delete
LEADIN_PLUGIN_VERSION,
[258] Fix | Delete
LEADIN_REQUIRED_PHP_VERSION
[259] Fix | Delete
);
[260] Fix | Delete
} elseif ( Versions::is_wp_version_not_supported() ) {
[261] Fix | Delete
$error_message = sprintf(
[262] Fix | Delete
__( 'HubSpot All-In-One Marketing %1$s requires PHP %2$s or higher Please upgrade WordPress first', 'leadin' ),
[263] Fix | Delete
LEADIN_PLUGIN_VERSION,
[264] Fix | Delete
LEADIN_REQUIRED_WP_VERSION
[265] Fix | Delete
);
[266] Fix | Delete
}
[267] Fix | Delete
[268] Fix | Delete
if ( $error_message ) {
[269] Fix | Delete
?>
[270] Fix | Delete
<div class='notice notice-warning'>
[271] Fix | Delete
<p>
[272] Fix | Delete
<?php echo esc_html( $error_message ); ?>
[273] Fix | Delete
</p>
[274] Fix | Delete
</div>
[275] Fix | Delete
<?php
[276] Fix | Delete
} else {
[277] Fix | Delete
?>
[278] Fix | Delete
<div id="leadin-iframe-fallback-container"></div>
[279] Fix | Delete
<div id="leadin-iframe-container"></div>
[280] Fix | Delete
<?php
[281] Fix | Delete
}
[282] Fix | Delete
}
[283] Fix | Delete
[284] Fix | Delete
}
[285] Fix | Delete
[286] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function