Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/chaty/includes
File: class-frontend.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
*
[2] Fix | Delete
*/
[3] Fix | Delete
[4] Fix | Delete
namespace CHT\frontend;
[5] Fix | Delete
[6] Fix | Delete
use CHT\admin\CHT_Admin_Base;
[7] Fix | Delete
use CHT\admin\CHT_PRO_Social_Icons;
[8] Fix | Delete
use CHT\admin\CHT_Social_Icons;
[9] Fix | Delete
[10] Fix | Delete
if (defined('ABSPATH') === false) {
[11] Fix | Delete
exit;
[12] Fix | Delete
}
[13] Fix | Delete
[14] Fix | Delete
$adminBase = CHT_ADMIN_INC.'/class-admin-base.php';
[15] Fix | Delete
require_once $adminBase;
[16] Fix | Delete
[17] Fix | Delete
$socialIcons = CHT_ADMIN_INC.'/class-social-icons.php';
[18] Fix | Delete
require_once $socialIcons;
[19] Fix | Delete
[20] Fix | Delete
/**
[21] Fix | Delete
* Class for managing frontend functionalities.
[22] Fix | Delete
*/
[23] Fix | Delete
class CHT_Frontend extends CHT_Admin_Base
[24] Fix | Delete
{
[25] Fix | Delete
[26] Fix | Delete
/**
[27] Fix | Delete
* Holds the number of widgets.
[28] Fix | Delete
*
[29] Fix | Delete
* @var int
[30] Fix | Delete
*/
[31] Fix | Delete
public $widgetNumber;
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* Whether the font is enabled or not.
[35] Fix | Delete
*
[36] Fix | Delete
* @var bool $hasFont True if the font is enabled, false otherwise.
[37] Fix | Delete
* @since 1.0.0
[38] Fix | Delete
* @access public
[39] Fix | Delete
*/
[40] Fix | Delete
public $hasFont = false;
[41] Fix | Delete
[42] Fix | Delete
/**
[43] Fix | Delete
* Whether the font is enabled or not.
[44] Fix | Delete
*
[45] Fix | Delete
* @var bool $hasFont True if the email field is added, false otherwise.
[46] Fix | Delete
* @since 1.0.0
[47] Fix | Delete
* @access public
[48] Fix | Delete
*/
[49] Fix | Delete
public $hasEmail = false;
[50] Fix | Delete
[51] Fix | Delete
/**
[52] Fix | Delete
* Whether the font is enabled or not.
[53] Fix | Delete
*
[54] Fix | Delete
* @var bool $hasEmoji True if the emoji is enabled, false otherwise.
[55] Fix | Delete
* @since 1.0.0
[56] Fix | Delete
* @access public
[57] Fix | Delete
*/
[58] Fix | Delete
public $hasEmoji = false;
[59] Fix | Delete
[60] Fix | Delete
public $hasChatway = false;
[61] Fix | Delete
[62] Fix | Delete
public $chatwayIcons = [];
[63] Fix | Delete
[64] Fix | Delete
/**
[65] Fix | Delete
* Class constructor.
[66] Fix | Delete
*
[67] Fix | Delete
* Initializes the class properties and sets up the necessary actions and filters.
[68] Fix | Delete
*/
[69] Fix | Delete
public function __construct()
[70] Fix | Delete
{
[71] Fix | Delete
$this->socials = CHT_Social_Icons::get_instance()->get_icons_list();
[72] Fix | Delete
$this->chatwayIcons = CHT_Social_Icons::get_instance()->get_chatway_icons();
[73] Fix | Delete
if (wp_doing_ajax()) {
[74] Fix | Delete
add_action('wp_ajax_choose_social', [$this, 'choose_social_handler']);
[75] Fix | Delete
add_action('wp_ajax_get_chaty_settings', [$this, 'get_chaty_settings']);
[76] Fix | Delete
[77] Fix | Delete
// Return setting for a social media in html.
[78] Fix | Delete
add_action('wp_ajax_chaty_front_form_save_data', [$this, 'chaty_front_form_save_data']);
[79] Fix | Delete
add_action('wp_ajax_nopriv_chaty_front_form_save_data', [$this, 'chaty_front_form_save_data']);
[80] Fix | Delete
[81] Fix | Delete
add_action('wp_ajax_remove_chaty_widget', [$this, 'remove_chaty_widget']);
[82] Fix | Delete
add_action('wp_ajax_rename_chaty_widget', array($this, 'rename_chaty_widget')); // rename social media widget
[83] Fix | Delete
[84] Fix | Delete
// Remove social media widget.
[85] Fix | Delete
add_action('wp_ajax_change_chaty_widget_status', [$this, 'change_chaty_widget_status']);
[86] Fix | Delete
[87] Fix | Delete
[88] Fix | Delete
add_action('wp_ajax_update_chaty_view', [$this, 'update_chaty_view']);
[89] Fix | Delete
add_action('wp_ajax_nopriv_update_chaty_view', [$this, 'update_chaty_view']);
[90] Fix | Delete
// Remove social media widget.
[91] Fix | Delete
}
[92] Fix | Delete
[93] Fix | Delete
$inEditors = $this->check_for_editors();
[94] Fix | Delete
if (!($inEditors)) {
[95] Fix | Delete
add_action('wp_enqueue_scripts', [$this, 'cht_front_end_css_and_js']);
[96] Fix | Delete
}
[97] Fix | Delete
[98] Fix | Delete
}//end __construct()
[99] Fix | Delete
[100] Fix | Delete
/**
[101] Fix | Delete
* Update chaty view function
[102] Fix | Delete
*
[103] Fix | Delete
* This function updates the chaty view count when triggered.
[104] Fix | Delete
*
[105] Fix | Delete
* @return void
[106] Fix | Delete
* @since 1.0.0
[107] Fix | Delete
* @access public
[108] Fix | Delete
*
[109] Fix | Delete
*/
[110] Fix | Delete
[111] Fix | Delete
public function update_chaty_view() {
[112] Fix | Delete
if(isset($_POST['token'])) {
[113] Fix | Delete
$token = sanitize_text_field($_POST['token']);
[114] Fix | Delete
if(wp_verify_nonce($token, "update_chaty_view")) {
[115] Fix | Delete
if(!get_option("chaty_views")) {
[116] Fix | Delete
add_option("chaty_views", 1);
[117] Fix | Delete
}
[118] Fix | Delete
}
[119] Fix | Delete
}
[120] Fix | Delete
}
[121] Fix | Delete
[122] Fix | Delete
/**
[123] Fix | Delete
* To rename Chaty widget
[124] Fix | Delete
*
[125] Fix | Delete
* @return void
[126] Fix | Delete
* @since 1.0.0
[127] Fix | Delete
* @access public
[128] Fix | Delete
*/
[129] Fix | Delete
public function rename_chaty_widget() {
[130] Fix | Delete
if (current_user_can('manage_options')) {
[131] Fix | Delete
$widget_index = sanitize_text_field($_POST['widget_index']);
[132] Fix | Delete
$widget_nonce = sanitize_text_field($_POST['widget_nonce']);
[133] Fix | Delete
$widget_title = sanitize_text_field($_POST['widget_title']);
[134] Fix | Delete
if (isset($widget_index) && !empty($widget_index) && !empty($widget_nonce) && wp_verify_nonce($widget_nonce, "chaty_remove_" . $widget_index)) {
[135] Fix | Delete
[136] Fix | Delete
$index = $widget_index;
[137] Fix | Delete
$index = trim($index, "_");
[138] Fix | Delete
[139] Fix | Delete
if(empty($index)) {
[140] Fix | Delete
update_option("cht_widget_title", $widget_title);
[141] Fix | Delete
} else {
[142] Fix | Delete
update_option("cht_widget_title_" . $index, $widget_title);
[143] Fix | Delete
}
[144] Fix | Delete
[145] Fix | Delete
echo esc_url(admin_url("admin.php?page=chaty-app"));
[146] Fix | Delete
exit;
[147] Fix | Delete
}
[148] Fix | Delete
}
[149] Fix | Delete
}
[150] Fix | Delete
[151] Fix | Delete
[152] Fix | Delete
/**
[153] Fix | Delete
* Checks if the current page is being edited in a page builder.
[154] Fix | Delete
*
[155] Fix | Delete
* @return int Returns 1 if the page is being edited in a page builder, 0 otherwise.
[156] Fix | Delete
* @since 1.0.0
[157] Fix | Delete
* @access public
[158] Fix | Delete
*
[159] Fix | Delete
*/
[160] Fix | Delete
function check_for_editors()
[161] Fix | Delete
{
[162] Fix | Delete
$isElementor = isset($_GET['elementor-preview']) ? 1 : 0;
[163] Fix | Delete
$isCtBuilder = isset($_GET['ct_builder']) ? 1 : 0;
[164] Fix | Delete
$isDiviTheme = isset($_GET['et_fb']) ? 1 : 0;
[165] Fix | Delete
$isZionBuilder = isset($_GET['zionbuilder-preview']) ? 1 : 0;
[166] Fix | Delete
$isSiteOrigin = isset($_GET['siteorigin_panels_live_editor']) ? 1 : 0;
[167] Fix | Delete
$flBuilder = isset($_GET['fl_builder']) ? 1 : 0;
[168] Fix | Delete
return ($isCtBuilder || $isElementor || $isDiviTheme || $isZionBuilder || $isSiteOrigin || $flBuilder) ? 1 : 0;
[169] Fix | Delete
[170] Fix | Delete
}//end check_for_editors()
[171] Fix | Delete
[172] Fix | Delete
[173] Fix | Delete
/**
[174] Fix | Delete
* To remove a chaty widget
[175] Fix | Delete
*
[176] Fix | Delete
* @return void
[177] Fix | Delete
* @since 1.0.0
[178] Fix | Delete
* @access public
[179] Fix | Delete
*/
[180] Fix | Delete
public function remove_chaty_widget()
[181] Fix | Delete
{
[182] Fix | Delete
if (current_user_can('manage_options')) {
[183] Fix | Delete
$widgetIndex = filter_input(INPUT_POST, 'widget_index');
[184] Fix | Delete
$widgetNonce = filter_input(INPUT_POST, 'widget_nonce');
[185] Fix | Delete
if (isset($widgetIndex) && !empty($widgetIndex) && !empty($widgetNonce) && wp_verify_nonce($widgetNonce, "chaty_remove_".$widgetIndex)) {
[186] Fix | Delete
$options = [
[187] Fix | Delete
'mobile' => '1',
[188] Fix | Delete
'desktop' => '1',
[189] Fix | Delete
];
[190] Fix | Delete
delete_option("cht_active");
[191] Fix | Delete
delete_option("chaty_icons_view");
[192] Fix | Delete
delete_option("chaty_icons_view");
[193] Fix | Delete
delete_option("cht_cta_text_color");
[194] Fix | Delete
delete_option("cht_cta_bg_color");
[195] Fix | Delete
delete_option("cht_pending_messages");
[196] Fix | Delete
delete_option("cht_number_of_messages");
[197] Fix | Delete
delete_option("cht_number_color");
[198] Fix | Delete
delete_option("cht_number_bg_color");
[199] Fix | Delete
delete_option("cht_cta_switcher");
[200] Fix | Delete
delete_option("chaty_attention_effect");
[201] Fix | Delete
delete_option("chaty_default_state");
[202] Fix | Delete
delete_option("chaty_trigger_on_time");
[203] Fix | Delete
delete_option("chaty_trigger_time");
[204] Fix | Delete
delete_option("chaty_trigger_on_exit");
[205] Fix | Delete
delete_option("chaty_trigger_on_scroll");
[206] Fix | Delete
delete_option("chaty_trigger_on_page_scroll");
[207] Fix | Delete
delete_option("cht_close_button");
[208] Fix | Delete
delete_option("cht_close_button_text");
[209] Fix | Delete
delete_option("chaty_updated_on");
[210] Fix | Delete
delete_option("cht_widget_title");
[211] Fix | Delete
delete_option("cht_widget_font");
[212] Fix | Delete
delete_option("cta_type");
[213] Fix | Delete
delete_option("cta_heading_text");
[214] Fix | Delete
delete_option("cta_body_text");
[215] Fix | Delete
delete_option("cta_header_text_color");
[216] Fix | Delete
delete_option("cta_header_bg_color");
[217] Fix | Delete
[218] Fix | Delete
foreach ($this->socials as $social) {
[219] Fix | Delete
delete_option('cht_social_'.$social['slug']);
[220] Fix | Delete
}
[221] Fix | Delete
[222] Fix | Delete
update_option('cht_devices', $options);
[223] Fix | Delete
update_option('cht_position', 'right');
[224] Fix | Delete
update_option('cht_cta', 'Contact us');
[225] Fix | Delete
update_option('cht_numb_slug', ',Phone,Whatsapp');
[226] Fix | Delete
update_option('cht_social_whatsapp', '');
[227] Fix | Delete
update_option('cht_social_phone', '');
[228] Fix | Delete
update_option('cht_widget_size', '54');
[229] Fix | Delete
update_option('widget_icon', 'chat-base');
[230] Fix | Delete
update_option('cht_widget_img', '');
[231] Fix | Delete
update_option('cht_color', '#A886CD');
[232] Fix | Delete
echo esc_url(admin_url("admin.php?page=chaty-app"));
[233] Fix | Delete
exit;
[234] Fix | Delete
}//end if
[235] Fix | Delete
}//end if
[236] Fix | Delete
[237] Fix | Delete
}//end remove_chaty_widget()
[238] Fix | Delete
[239] Fix | Delete
[240] Fix | Delete
/**
[241] Fix | Delete
* Change the status of the Chaty widget
[242] Fix | Delete
*
[243] Fix | Delete
* @return void
[244] Fix | Delete
* @since 1.0.0
[245] Fix | Delete
* @access public
[246] Fix | Delete
*/
[247] Fix | Delete
public function change_chaty_widget_status()
[248] Fix | Delete
{
[249] Fix | Delete
if (current_user_can('manage_options')) {
[250] Fix | Delete
$widgetIndex = filter_input(INPUT_POST, 'widget_index');
[251] Fix | Delete
$widgetNonce = filter_input(INPUT_POST, 'widget_nonce');
[252] Fix | Delete
if (isset($widgetIndex) && !empty($widgetIndex) && !empty($widgetNonce) && wp_verify_nonce($widgetNonce, "chaty_remove_".$widgetIndex)) {
[253] Fix | Delete
$widgetIndex = trim($widgetIndex, "_");
[254] Fix | Delete
if (empty($widgetIndex) || $widgetIndex == 0) {
[255] Fix | Delete
$widgetIndex = "";
[256] Fix | Delete
} else {
[257] Fix | Delete
$widgetIndex = "_".$widgetIndex;
[258] Fix | Delete
}
[259] Fix | Delete
[260] Fix | Delete
$status = get_option("cht_active".$widgetIndex);
[261] Fix | Delete
if ($status) {
[262] Fix | Delete
update_option("cht_active".$widgetIndex, 0);
[263] Fix | Delete
} else {
[264] Fix | Delete
update_option("cht_active".$widgetIndex, 1);
[265] Fix | Delete
}
[266] Fix | Delete
}
[267] Fix | Delete
}
[268] Fix | Delete
[269] Fix | Delete
echo "1";
[270] Fix | Delete
exit;
[271] Fix | Delete
[272] Fix | Delete
}//end change_chaty_widget_status()
[273] Fix | Delete
[274] Fix | Delete
[275] Fix | Delete
/**
[276] Fix | Delete
* Save contact form data
[277] Fix | Delete
*
[278] Fix | Delete
* @return void
[279] Fix | Delete
* @since 1.0.0
[280] Fix | Delete
* @access public
[281] Fix | Delete
*/
[282] Fix | Delete
function chaty_front_form_save_data()
[283] Fix | Delete
{
[284] Fix | Delete
$response = [
[285] Fix | Delete
'status' => 0,
[286] Fix | Delete
'error' => 0,
[287] Fix | Delete
'errors' => [],
[288] Fix | Delete
'message' => '',
[289] Fix | Delete
];
[290] Fix | Delete
$postData = filter_input_array(INPUT_POST);
[291] Fix | Delete
$widgetIndex = $postData['widget'];
[292] Fix | Delete
if(empty($widgetIndex)) {
[293] Fix | Delete
$widgetIndex = "";
[294] Fix | Delete
}
[295] Fix | Delete
if (isset($postData['nonce']) && isset($postData['widget']) && wp_verify_nonce($postData['nonce'], "chaty_widget_nonce".$widgetIndex)) {
[296] Fix | Delete
$name = isset($postData['name']) ? $postData['name'] : "";
[297] Fix | Delete
$phone = isset($postData['phone']) ? $postData['phone'] : "";
[298] Fix | Delete
$email = isset($postData['email']) ? $postData['email'] : "";
[299] Fix | Delete
$message = isset($postData['message']) ? $postData['message'] : "";
[300] Fix | Delete
$refURL = isset($postData['ref_url']) ? $postData['ref_url'] : "";
[301] Fix | Delete
$widget = $postData['widget'];
[302] Fix | Delete
$channel = $postData['channel'];
[303] Fix | Delete
[304] Fix | Delete
$value = get_option('cht_social_'.$channel);
[305] Fix | Delete
// get saved settings for button
[306] Fix | Delete
$errors = [];
[307] Fix | Delete
if (!empty($value)) {
[308] Fix | Delete
$fieldSetting = isset($value['name']) ? $value['name'] : [];
[309] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes" && isset($fieldSetting['is_required']) && $fieldSetting['is_required'] == "yes" && empty($name)) {
[310] Fix | Delete
$error = [
[311] Fix | Delete
'field' => 'chaty-field-name',
[312] Fix | Delete
'message' => esc_html__("this field is required", 'chaty'),
[313] Fix | Delete
];
[314] Fix | Delete
$errors[] = $error;
[315] Fix | Delete
}
[316] Fix | Delete
[317] Fix | Delete
$fieldSetting = isset($value['phone']) ? $value['phone'] : [];
[318] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes" && isset($fieldSetting['is_required']) && $fieldSetting['is_required'] == "yes" && empty($phone)) {
[319] Fix | Delete
$error = [
[320] Fix | Delete
'field' => 'chaty-field-phone',
[321] Fix | Delete
'message' => esc_html__("this field is required", 'chaty'),
[322] Fix | Delete
];
[323] Fix | Delete
$errors[] = $error;
[324] Fix | Delete
}
[325] Fix | Delete
[326] Fix | Delete
$fieldSetting = isset($value['email']) ? $value['email'] : [];
[327] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes" && isset($fieldSetting['is_required']) && $fieldSetting['is_required'] == "yes") {
[328] Fix | Delete
if (empty($email)) {
[329] Fix | Delete
$error = [
[330] Fix | Delete
'field' => 'chaty-field-email',
[331] Fix | Delete
'message' => esc_html__("this field is required", 'chaty'),
[332] Fix | Delete
];
[333] Fix | Delete
$errors[] = $error;
[334] Fix | Delete
} else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
[335] Fix | Delete
$error = [
[336] Fix | Delete
'field' => 'chaty-field-email',
[337] Fix | Delete
'message' => esc_html__("email address is not valid", 'chaty'),
[338] Fix | Delete
];
[339] Fix | Delete
$errors[] = $error;
[340] Fix | Delete
}
[341] Fix | Delete
}
[342] Fix | Delete
[343] Fix | Delete
$fieldSetting = isset($value['message']) ? $value['message'] : [];
[344] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes" && isset($fieldSetting['is_required']) && $fieldSetting['is_required'] == "yes" && empty($message)) {
[345] Fix | Delete
$error = [
[346] Fix | Delete
'field' => 'chaty-field-message',
[347] Fix | Delete
'message' => esc_html__("this field is required", 'chaty'),
[348] Fix | Delete
];
[349] Fix | Delete
$errors[] = $error;
[350] Fix | Delete
}
[351] Fix | Delete
[352] Fix | Delete
if (empty($errors)) {
[353] Fix | Delete
$widget = trim($widget, "_");
[354] Fix | Delete
$response['message'] = esc_attr($value['thanks_message']);
[355] Fix | Delete
$response['redirect_action'] = esc_attr($value['redirect_action']);
[356] Fix | Delete
$response['redirect_link'] = esc_url($value['redirect_link']);
[357] Fix | Delete
$response['link_in_new_tab'] = esc_attr($value['link_in_new_tab']);
[358] Fix | Delete
$response['close_form_after'] = esc_attr($value['close_form_after']);
[359] Fix | Delete
$response['close_form_after_seconds'] = esc_attr($value['close_form_after_seconds']);
[360] Fix | Delete
[361] Fix | Delete
wp_timezone_string();
[362] Fix | Delete
$currentDate = gmdate("Y-m-d H:i:s");
[363] Fix | Delete
[364] Fix | Delete
global $wpdb;
[365] Fix | Delete
$chatyTable = $wpdb->prefix.'chaty_contact_form_leads';
[366] Fix | Delete
$insert = [];
[367] Fix | Delete
$fieldSetting = isset($value['name']) ? $value['name'] : [];
[368] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes") {
[369] Fix | Delete
$insert['name'] = esc_sql(sanitize_text_field($name));
[370] Fix | Delete
}
[371] Fix | Delete
[372] Fix | Delete
$fieldSetting = isset($value['email']) ? $value['email'] : [];
[373] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes") {
[374] Fix | Delete
$insert['email'] = esc_sql(sanitize_text_field($email));
[375] Fix | Delete
}
[376] Fix | Delete
[377] Fix | Delete
$fieldSetting = isset($value['phone']) ? $value['phone'] : [];
[378] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes") {
[379] Fix | Delete
$insert['phone_number'] = esc_sql(sanitize_text_field($phone));
[380] Fix | Delete
}
[381] Fix | Delete
[382] Fix | Delete
$fieldSetting = isset($value['message']) ? $value['message'] : [];
[383] Fix | Delete
if (isset($fieldSetting['is_active']) && $fieldSetting['is_active'] == "yes") {
[384] Fix | Delete
$insert['message'] = esc_sql(sanitize_text_field($message));
[385] Fix | Delete
}
[386] Fix | Delete
[387] Fix | Delete
$insert['ref_page'] = esc_url(esc_sql(sanitize_text_field($refURL)));
[388] Fix | Delete
$insert['ip_address'] = "";
[389] Fix | Delete
$insert['widget_id'] = esc_sql(sanitize_text_field($widget));
[390] Fix | Delete
$insert['created_on'] = esc_sql($currentDate);
[391] Fix | Delete
$wpdb->insert($chatyTable, $insert);
[392] Fix | Delete
[393] Fix | Delete
$showFirst = get_option("show_first_chaty_lead_box");
[394] Fix | Delete
if ($showFirst === false) {
[395] Fix | Delete
add_option("show_first_chaty_lead_box", 1);
[396] Fix | Delete
}
[397] Fix | Delete
[398] Fix | Delete
$response['status'] = 1;
[399] Fix | Delete
} else {
[400] Fix | Delete
$response['errors'] = $errors;
[401] Fix | Delete
$response['error'] = 1;
[402] Fix | Delete
}//end if
[403] Fix | Delete
} else {
[404] Fix | Delete
$response['message'] = "Invalid request, Please try again";
[405] Fix | Delete
}//end if
[406] Fix | Delete
} else {
[407] Fix | Delete
$response['message'] = "Invalid request, Please try again";
[408] Fix | Delete
}//end if
[409] Fix | Delete
[410] Fix | Delete
echo wp_json_encode($response);
[411] Fix | Delete
exit;
[412] Fix | Delete
[413] Fix | Delete
}//end chaty_front_form_save_data()
[414] Fix | Delete
[415] Fix | Delete
[416] Fix | Delete
/**
[417] Fix | Delete
* To add front-end CSS and JS for the chat widget.
[418] Fix | Delete
*
[419] Fix | Delete
* @since 1.0.0
[420] Fix | Delete
* @access private
[421] Fix | Delete
*/
[422] Fix | Delete
function cht_front_end_css_and_js()
[423] Fix | Delete
{
[424] Fix | Delete
if ($this->canInsertWidget()) :
[425] Fix | Delete
// Initialize widget if widget is enable for current page
[426] Fix | Delete
$social = $this->get_social_icon_list();
[427] Fix | Delete
// get active icon list
[428] Fix | Delete
$chtActive = get_option("cht_active");
[429] Fix | Delete
[430] Fix | Delete
// $bgColor = $this->get_current_color();
[431] Fix | Delete
// get custom background color for widget
[432] Fix | Delete
$defColor = get_option('cht_color');
[433] Fix | Delete
$customColor = get_option('cht_custom_color');
[434] Fix | Delete
// checking for custom color
[435] Fix | Delete
if (!empty($customColor)) {
[436] Fix | Delete
delete_option("cht_custom_color");
[437] Fix | Delete
update_option("cht_color", $defColor);
[438] Fix | Delete
$color = $customColor;
[439] Fix | Delete
} else {
[440] Fix | Delete
$color = $defColor;
[441] Fix | Delete
}
[442] Fix | Delete
[443] Fix | Delete
$bgColor = strtoupper($color);
[444] Fix | Delete
[445] Fix | Delete
$len = count($social);
[446] Fix | Delete
// get total active channels
[447] Fix | Delete
$cta = nl2br(get_option('cht_cta'));
[448] Fix | Delete
// $cta = str_replace(array("\r", "\n"), "", $cta);
[449] Fix | Delete
$cta = str_replace("&amp;#39;", "'", $cta);
[450] Fix | Delete
$cta = str_replace("&#39;", "'", $cta);
[451] Fix | Delete
$cta = esc_attr(wp_unslash($cta));
[452] Fix | Delete
$cta = html_entity_decode($cta);
[453] Fix | Delete
[454] Fix | Delete
$positionSide = get_option('positionSide');
[455] Fix | Delete
// get widget position
[456] Fix | Delete
$chtBottomSpacing = get_option('cht_bottom_spacing');
[457] Fix | Delete
// get widget position from bottom
[458] Fix | Delete
$chtSideSpacing = get_option('cht_side_spacing');
[459] Fix | Delete
// get widget position from left/Right
[460] Fix | Delete
$chtWidgetSize = get_option('cht_widget_size');
[461] Fix | Delete
// get widget size
[462] Fix | Delete
$positionSide = empty($positionSide) ? 'right' : $positionSide;
[463] Fix | Delete
// Initialize widget position if not exists
[464] Fix | Delete
$chtSideSpacing = ($chtSideSpacing) ? $chtSideSpacing : '25';
[465] Fix | Delete
// Initialize widget from left/Right if not exists
[466] Fix | Delete
$chtWidgetSize = ($chtWidgetSize) ? $chtWidgetSize : '54';
[467] Fix | Delete
// Initialize widget size if not exists
[468] Fix | Delete
$position = get_option('cht_position');
[469] Fix | Delete
$position = ($position) ? $position : 'right';
[470] Fix | Delete
// Initialize widget position if not exists
[471] Fix | Delete
$total = ($chtSideSpacing + $chtWidgetSize + $chtSideSpacing);
[472] Fix | Delete
$chtBottomSpacing = ($chtBottomSpacing) ? $chtBottomSpacing : '25';
[473] Fix | Delete
// Initialize widget bottom position if not exists
[474] Fix | Delete
$chtSideSpacing = ($chtSideSpacing) ? $chtSideSpacing : '25';
[475] Fix | Delete
// Initialize widget left/Right position if not exists
[476] Fix | Delete
$imageId = "";
[477] Fix | Delete
$imageUrl = plugin_dir_url("")."chaty-pro/admin/assets/images/chaty-default.png";
[478] Fix | Delete
// Initialize default image
[479] Fix | Delete
$analytics = get_option("cht_google_analytics");
[480] Fix | Delete
// check for google analytics enable or not
[481] Fix | Delete
$analytics = empty($analytics) ? 0 : $analytics;
[482] Fix | Delete
// Initialize google analytics flag to 0 if not data not exists
[483] Fix | Delete
$text = get_option("cht_close_button_text");
[484] Fix | Delete
// close button settings
[485] Fix | Delete
$close_text = ($text === false) ? "Hide" : $text;
[486] Fix | Delete
[487] Fix | Delete
$imageUrl = "";
[488] Fix | Delete
if ($imageId != "") {
[489] Fix | Delete
$imageData = wp_get_attachment_image_src($imageId, "full");
[490] Fix | Delete
if (!empty($imageData) && is_array($imageData)) {
[491] Fix | Delete
$imageUrl = $imageData[0];
[492] Fix | Delete
// change close button image if exists
[493] Fix | Delete
}
[494] Fix | Delete
}
[495] Fix | Delete
[496] Fix | Delete
$fontFamily = get_option('cht_widget_font');
[497] Fix | Delete
if ($fontFamily == "System Stack") {
[498] Fix | Delete
$fontFamily = "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif";
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function