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/popup-ma.../classes/Shortcod...
File: Subscribe.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Shortcode Subscribe
[2] Fix | Delete
*
[3] Fix | Delete
* @package PUM
[4] Fix | Delete
* @copyright Copyright (c) 2023, Code Atlantic LLC
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[8] Fix | Delete
exit;
[9] Fix | Delete
}
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* Class PUM_Shortcode_Subscribe
[13] Fix | Delete
*/
[14] Fix | Delete
class PUM_Shortcode_Subscribe extends PUM_Shortcode {
[15] Fix | Delete
[16] Fix | Delete
/**
[17] Fix | Delete
* @var int
[18] Fix | Delete
*/
[19] Fix | Delete
public $version = 2;
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* @var bool
[23] Fix | Delete
*/
[24] Fix | Delete
public $ajax_rendering = true;
[25] Fix | Delete
[26] Fix | Delete
/**
[27] Fix | Delete
* The shortcode tag.
[28] Fix | Delete
*
[29] Fix | Delete
* @return string
[30] Fix | Delete
*/
[31] Fix | Delete
public function tag() {
[32] Fix | Delete
return 'pum_sub_form';
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
/**
[36] Fix | Delete
* @return string
[37] Fix | Delete
*/
[38] Fix | Delete
public function label() {
[39] Fix | Delete
return __( 'Subscription Form', 'popup-maker' );
[40] Fix | Delete
}
[41] Fix | Delete
[42] Fix | Delete
/**
[43] Fix | Delete
* @return string
[44] Fix | Delete
*/
[45] Fix | Delete
public function description() {
[46] Fix | Delete
return __( 'A customizable newsletter subscription form.', 'popup-maker' );
[47] Fix | Delete
}
[48] Fix | Delete
[49] Fix | Delete
/**
[50] Fix | Delete
* @return array
[51] Fix | Delete
*/
[52] Fix | Delete
public function post_types() {
[53] Fix | Delete
return [ 'page', 'post', 'popup' ];
[54] Fix | Delete
}
[55] Fix | Delete
[56] Fix | Delete
/**
[57] Fix | Delete
* @return array
[58] Fix | Delete
*/
[59] Fix | Delete
public function tabs() {
[60] Fix | Delete
$tabs = [
[61] Fix | Delete
'general' => __( 'General', 'popup-maker' ),
[62] Fix | Delete
'form' => __( 'Form', 'popup-maker' ),
[63] Fix | Delete
'privacy' => __( 'Privacy', 'popup-maker' ),
[64] Fix | Delete
'actions' => __( 'Actions', 'popup-maker' ),
[65] Fix | Delete
];
[66] Fix | Delete
[67] Fix | Delete
// Deprecated filter
[68] Fix | Delete
$tabs = apply_filters( 'pum_sub_form_shortcode_sections', $tabs );
[69] Fix | Delete
[70] Fix | Delete
$tabs = apply_filters( 'pum_sub_form_shortcode_tabs', $tabs );
[71] Fix | Delete
[72] Fix | Delete
return $this->resort_provider_tabs( $tabs );
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
/**
[76] Fix | Delete
* @return array
[77] Fix | Delete
*/
[78] Fix | Delete
public function subtabs() {
[79] Fix | Delete
$subtabs = apply_filters(
[80] Fix | Delete
'pum_sub_form_shortcode_subtabs',
[81] Fix | Delete
[
[82] Fix | Delete
'general' => [
[83] Fix | Delete
'main' => __( 'General', 'popup-maker' ),
[84] Fix | Delete
],
[85] Fix | Delete
'privacy' => [
[86] Fix | Delete
'main' => __( 'General', 'popup-maker' ),
[87] Fix | Delete
],
[88] Fix | Delete
'form' => [
[89] Fix | Delete
'appearance' => __( 'Appearance', 'popup-maker' ),
[90] Fix | Delete
'fields' => __( 'Fields', 'popup-maker' ),
[91] Fix | Delete
'labels' => __( 'Labels', 'popup-maker' ),
[92] Fix | Delete
'placeholders' => __( 'Placeholders', 'popup-maker' ),
[93] Fix | Delete
'privacy' => __( 'Privacy', 'popup-maker' ),
[94] Fix | Delete
],
[95] Fix | Delete
'actions' => [
[96] Fix | Delete
'popup' => __( 'Popup', 'popup-maker' ),
[97] Fix | Delete
'redirect' => __( 'Redirect', 'popup-maker' ),
[98] Fix | Delete
],
[99] Fix | Delete
]
[100] Fix | Delete
);
[101] Fix | Delete
[102] Fix | Delete
return $this->resort_provider_tabs( $subtabs );
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* @return array
[107] Fix | Delete
*/
[108] Fix | Delete
public function fields() {
[109] Fix | Delete
$select_args = [];
[110] Fix | Delete
[111] Fix | Delete
if ( isset( $_GET['post'] ) && is_int( (int) $_GET['post'] ) && isset( $_GET['action'] ) && 'edit' === $_GET['action'] ) {
[112] Fix | Delete
$select_args['post__not_in'] = wp_parse_id_list( [ get_the_ID(), $_GET['post'] ] );
[113] Fix | Delete
}
[114] Fix | Delete
[115] Fix | Delete
$privacy_always_enabled = pum_get_option( 'privacy_consent_always_enabled', 'no' ) === 'yes';
[116] Fix | Delete
[117] Fix | Delete
$privacy_enabled_dependency = [
[118] Fix | Delete
'privacy_consent_enabled' => 'yes',
[119] Fix | Delete
];
[120] Fix | Delete
[121] Fix | Delete
$fields = apply_filters(
[122] Fix | Delete
'pum_sub_form_shortcode_fields',
[123] Fix | Delete
[
[124] Fix | Delete
'general' => [
[125] Fix | Delete
'main' => [
[126] Fix | Delete
'provider' => [
[127] Fix | Delete
'label' => __( 'Service Provider', 'popup-maker' ),
[128] Fix | Delete
'desc' => __( 'Choose which service provider to submit to.', 'popup-maker' ),
[129] Fix | Delete
'type' => 'select',
[130] Fix | Delete
'options' => array_merge( [ '' => __( 'Default', 'popup-maker' ) ], PUM_Newsletter_Providers::dropdown_list(), [ 'none' => __( 'None', 'popup-maker' ) ] ),
[131] Fix | Delete
'std' => '',
[132] Fix | Delete
],
[133] Fix | Delete
],
[134] Fix | Delete
],
[135] Fix | Delete
'form' => [
[136] Fix | Delete
'fields' => [
[137] Fix | Delete
'name_field_type' => [
[138] Fix | Delete
'label' => __( 'Name Field Type', 'popup-maker' ),
[139] Fix | Delete
'type' => 'select',
[140] Fix | Delete
'options' => [
[141] Fix | Delete
'disabled' => __( 'None', 'popup-maker' ),
[142] Fix | Delete
'fullname' => __( 'Full', 'popup-maker' ),
[143] Fix | Delete
'first_only' => __( 'First Only', 'popup-maker' ),
[144] Fix | Delete
'first_last' => __( 'First & Last', 'popup-maker' ),
[145] Fix | Delete
],
[146] Fix | Delete
'std' => 'fullname',
[147] Fix | Delete
'private' => true,
[148] Fix | Delete
],
[149] Fix | Delete
'name_optional' => [
[150] Fix | Delete
'label' => __( 'Name Optional', 'popup-maker' ),
[151] Fix | Delete
'desc' => __( 'Makes the name field optional.', 'popup-maker' ),
[152] Fix | Delete
'type' => 'checkbox',
[153] Fix | Delete
'dependencies' => [
[154] Fix | Delete
'name_field_type' => [ 'fullname', 'first_only', 'first_last' ],
[155] Fix | Delete
],
[156] Fix | Delete
'private' => true,
[157] Fix | Delete
],
[158] Fix | Delete
'name_disabled' => [
[159] Fix | Delete
'label' => __( 'Name Disabled', 'popup-maker' ),
[160] Fix | Delete
'desc' => __( 'Removes the name field.', 'popup-maker' ),
[161] Fix | Delete
'type' => 'checkbox',
[162] Fix | Delete
'dependencies' => [
[163] Fix | Delete
'name_field_type' => false,
[164] Fix | Delete
],
[165] Fix | Delete
'private' => true,
[166] Fix | Delete
],
[167] Fix | Delete
[168] Fix | Delete
],
[169] Fix | Delete
'labels' => [
[170] Fix | Delete
'disable_labels' => [
[171] Fix | Delete
'label' => __( 'Disable Labels', 'popup-maker' ),
[172] Fix | Delete
'desc' => __( 'Disables the display of field labels.', 'popup-maker' ),
[173] Fix | Delete
'type' => 'checkbox',
[174] Fix | Delete
'private' => true,
[175] Fix | Delete
],
[176] Fix | Delete
'heading_labels' => [
[177] Fix | Delete
'label' => __( 'Labels', 'popup-maker' ),
[178] Fix | Delete
'desc' => __( 'Field label text', 'popup-maker' ),
[179] Fix | Delete
'type' => 'heading',
[180] Fix | Delete
'private' => true,
[181] Fix | Delete
],
[182] Fix | Delete
'label_name' => [
[183] Fix | Delete
'label' => __( 'Full Name', 'popup-maker' ),
[184] Fix | Delete
'dependencies' => [
[185] Fix | Delete
'disable_labels' => false,
[186] Fix | Delete
'name_field_type' => [ 'fullname' ],
[187] Fix | Delete
],
[188] Fix | Delete
'std' => __( 'Name', 'popup-maker' ),
[189] Fix | Delete
'private' => true,
[190] Fix | Delete
],
[191] Fix | Delete
'label_fname' => [
[192] Fix | Delete
'label' => __( 'First Name', 'popup-maker' ),
[193] Fix | Delete
'dependencies' => [
[194] Fix | Delete
'disable_labels' => false,
[195] Fix | Delete
'name_field_type' => [ 'first_only', 'first_last' ],
[196] Fix | Delete
],
[197] Fix | Delete
'std' => __( 'First Name', 'popup-maker' ),
[198] Fix | Delete
'private' => true,
[199] Fix | Delete
],
[200] Fix | Delete
'label_lname' => [
[201] Fix | Delete
'label' => __( 'Last Name', 'popup-maker' ),
[202] Fix | Delete
'dependencies' => [
[203] Fix | Delete
'disable_labels' => false,
[204] Fix | Delete
'name_field_type' => [ 'first_last' ],
[205] Fix | Delete
],
[206] Fix | Delete
'std' => __( 'Last Name', 'popup-maker' ),
[207] Fix | Delete
'private' => true,
[208] Fix | Delete
],
[209] Fix | Delete
'label_email' => [
[210] Fix | Delete
'label' => __( 'Email', 'popup-maker' ),
[211] Fix | Delete
'dependencies' => [
[212] Fix | Delete
'disable_labels' => false,
[213] Fix | Delete
],
[214] Fix | Delete
'std' => __( 'Email', 'popup-maker' ),
[215] Fix | Delete
'private' => true,
[216] Fix | Delete
],
[217] Fix | Delete
'label_submit' => [
[218] Fix | Delete
'label' => __( 'Submit Button', 'popup-maker' ),
[219] Fix | Delete
'std' => __( 'Subscribe', 'popup-maker' ),
[220] Fix | Delete
'private' => true,
[221] Fix | Delete
],
[222] Fix | Delete
// Deprecated fields.
[223] Fix | Delete
'name_text' => [
[224] Fix | Delete
'type' => 'hidden',
[225] Fix | Delete
'private' => true,
[226] Fix | Delete
],
[227] Fix | Delete
'email_text' => [
[228] Fix | Delete
'private' => true,
[229] Fix | Delete
'type' => 'hidden',
[230] Fix | Delete
],
[231] Fix | Delete
'button_text' => [
[232] Fix | Delete
'type' => 'hidden',
[233] Fix | Delete
'private' => true,
[234] Fix | Delete
],
[235] Fix | Delete
],
[236] Fix | Delete
'placeholders' => [
[237] Fix | Delete
'placeholder_name' => [
[238] Fix | Delete
'label' => __( 'Full Name', 'popup-maker' ),
[239] Fix | Delete
'dependencies' => [
[240] Fix | Delete
'name_field_type' => [ 'fullname' ],
[241] Fix | Delete
],
[242] Fix | Delete
'std' => __( 'Name', 'popup-maker' ),
[243] Fix | Delete
'private' => true,
[244] Fix | Delete
],
[245] Fix | Delete
'placeholder_fname' => [
[246] Fix | Delete
'label' => __( 'First Name', 'popup-maker' ),
[247] Fix | Delete
'dependencies' => [
[248] Fix | Delete
'name_field_type' => [ 'first_only', 'first_last' ],
[249] Fix | Delete
],
[250] Fix | Delete
'std' => __( 'First Name', 'popup-maker' ),
[251] Fix | Delete
'private' => true,
[252] Fix | Delete
],
[253] Fix | Delete
'placeholder_lname' => [
[254] Fix | Delete
'label' => __( 'Last Name', 'popup-maker' ),
[255] Fix | Delete
'dependencies' => [
[256] Fix | Delete
'name_field_type' => [ 'first_last' ],
[257] Fix | Delete
],
[258] Fix | Delete
'std' => __( 'Last Name', 'popup-maker' ),
[259] Fix | Delete
'private' => true,
[260] Fix | Delete
],
[261] Fix | Delete
'placeholder_email' => [
[262] Fix | Delete
'label' => __( 'Email', 'popup-maker' ),
[263] Fix | Delete
'std' => __( 'Email', 'popup-maker' ),
[264] Fix | Delete
'private' => true,
[265] Fix | Delete
],
[266] Fix | Delete
[267] Fix | Delete
],
[268] Fix | Delete
'appearance' => [
[269] Fix | Delete
'form_layout' => [
[270] Fix | Delete
'label' => __( 'Form Layout', 'popup-maker' ),
[271] Fix | Delete
'desc' => __( 'Choose a form layout.', 'popup-maker' ),
[272] Fix | Delete
'type' => 'select',
[273] Fix | Delete
'options' => [
[274] Fix | Delete
'block' => __( 'Block', 'popup-maker' ),
[275] Fix | Delete
'inline' => __( 'Inline', 'popup-maker' ),
[276] Fix | Delete
],
[277] Fix | Delete
'std' => 'block',
[278] Fix | Delete
'private' => true,
[279] Fix | Delete
],
[280] Fix | Delete
'form_alignment' => [
[281] Fix | Delete
'label' => __( 'Form Alignment', 'popup-maker' ),
[282] Fix | Delete
'desc' => __( 'Choose a form alignment.', 'popup-maker' ),
[283] Fix | Delete
'type' => 'select',
[284] Fix | Delete
'options' => [
[285] Fix | Delete
'left' => __( 'Left', 'popup-maker' ),
[286] Fix | Delete
'center' => __( 'Center', 'popup-maker' ),
[287] Fix | Delete
'right' => __( 'Right', 'popup-maker' ),
[288] Fix | Delete
],
[289] Fix | Delete
'std' => 'center',
[290] Fix | Delete
'private' => true,
[291] Fix | Delete
],
[292] Fix | Delete
'form_style' => [
[293] Fix | Delete
'label' => __( 'Form Style', 'popup-maker' ),
[294] Fix | Delete
'desc' => __( 'Choose how you want your form styled.', 'popup-maker' ),
[295] Fix | Delete
'type' => 'select',
[296] Fix | Delete
'options' => [
[297] Fix | Delete
'' => __( 'None', 'popup-maker' ),
[298] Fix | Delete
'default' => __( 'Default', 'popup-maker' ),
[299] Fix | Delete
],
[300] Fix | Delete
'std' => 'default',
[301] Fix | Delete
],
[302] Fix | Delete
'layout' => [
[303] Fix | Delete
'type' => 'hidden',
[304] Fix | Delete
'private' => true,
[305] Fix | Delete
],
[306] Fix | Delete
'style' => [
[307] Fix | Delete
'type' => 'hidden',
[308] Fix | Delete
'private' => true,
[309] Fix | Delete
],
[310] Fix | Delete
],
[311] Fix | Delete
],
[312] Fix | Delete
'privacy' => [
[313] Fix | Delete
'main' => [
[314] Fix | Delete
'privacy_consent_enabled' => [
[315] Fix | Delete
'label' => __( 'Enabled', 'popup-maker' ),
[316] Fix | Delete
'desc' => __( 'When enabled, the successful completion will result in normal success actions, but if they do not opt-in no records will be made.', 'popup-maker' ),
[317] Fix | Delete
'type' => $privacy_always_enabled ? 'hidden' : 'select',
[318] Fix | Delete
'options' => [
[319] Fix | Delete
'yes' => __( 'Yes', 'popup-maker' ),
[320] Fix | Delete
'no' => __( 'No', 'popup-maker' ),
[321] Fix | Delete
],
[322] Fix | Delete
'std' => 'yes',
[323] Fix | Delete
'value' => $privacy_always_enabled ? 'yes' : null,
[324] Fix | Delete
'private' => true,
[325] Fix | Delete
],
[326] Fix | Delete
'privacy_consent_label' => [
[327] Fix | Delete
'label' => __( 'Consent Field Label', 'popup-maker' ),
[328] Fix | Delete
'type' => 'text',
[329] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_label', __( 'Notify me about related content and special offers.', 'popup-maker' ) ),
[330] Fix | Delete
'private' => true,
[331] Fix | Delete
'dependencies' => $privacy_enabled_dependency,
[332] Fix | Delete
],
[333] Fix | Delete
'privacy_consent_required' => [
[334] Fix | Delete
'label' => __( 'Consent Required', 'popup-maker' ),
[335] Fix | Delete
'desc' => __( 'Note: Requiring consent may not be compliant with GDPR for all situations. Be sure to do your research or check with legal council.', 'popup-maker' ),
[336] Fix | Delete
'type' => 'checkbox',
[337] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_required' ),
[338] Fix | Delete
'private' => true,
[339] Fix | Delete
'dependencies' => $privacy_enabled_dependency,
[340] Fix | Delete
],
[341] Fix | Delete
'privacy_consent_type' => [
[342] Fix | Delete
'label' => __( 'Field Type', 'popup-maker' ),
[343] Fix | Delete
'desc' => __( 'Radio forces the user to make a choice, often resulting in more optins.', 'popup-maker' ),
[344] Fix | Delete
'type' => 'select',
[345] Fix | Delete
'options' => [
[346] Fix | Delete
'radio' => __( 'Radio', 'popup-maker' ),
[347] Fix | Delete
'checkbox' => __( 'Checkbox', 'popup-maker' ),
[348] Fix | Delete
],
[349] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_type', 'radio' ),
[350] Fix | Delete
'private' => true,
[351] Fix | Delete
'dependencies' => $privacy_enabled_dependency,
[352] Fix | Delete
],
[353] Fix | Delete
'privacy_consent_radio_layout' => [
[354] Fix | Delete
'label' => __( 'Consent Radio Layout', 'popup-maker' ),
[355] Fix | Delete
'type' => 'select',
[356] Fix | Delete
'options' => [
[357] Fix | Delete
'inline' => __( 'Inline', 'popup-maker' ),
[358] Fix | Delete
'stacked' => __( 'Stacked', 'popup-maker' ),
[359] Fix | Delete
],
[360] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_radio_layout', 'inline' ),
[361] Fix | Delete
'private' => true,
[362] Fix | Delete
'dependencies' => array_merge(
[363] Fix | Delete
$privacy_enabled_dependency,
[364] Fix | Delete
[
[365] Fix | Delete
'privacy_consent_type' => 'radio',
[366] Fix | Delete
]
[367] Fix | Delete
),
[368] Fix | Delete
],
[369] Fix | Delete
'privacy_consent_yes_label' => [
[370] Fix | Delete
'label' => __( 'Consent Yes Label', 'popup-maker' ),
[371] Fix | Delete
'type' => 'text',
[372] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_yes_label', __( 'Yes', 'popup-maker' ) ),
[373] Fix | Delete
'private' => true,
[374] Fix | Delete
'dependencies' => array_merge(
[375] Fix | Delete
$privacy_enabled_dependency,
[376] Fix | Delete
[
[377] Fix | Delete
'privacy_consent_type' => 'radio',
[378] Fix | Delete
]
[379] Fix | Delete
),
[380] Fix | Delete
],
[381] Fix | Delete
'privacy_consent_no_label' => [
[382] Fix | Delete
'label' => __( 'Consent No Label', 'popup-maker' ),
[383] Fix | Delete
'type' => 'text',
[384] Fix | Delete
'std' => pum_get_option( 'default_privacy_consent_no_label', __( 'No', 'popup-maker' ) ),
[385] Fix | Delete
'private' => true,
[386] Fix | Delete
'dependencies' => array_merge(
[387] Fix | Delete
$privacy_enabled_dependency,
[388] Fix | Delete
[
[389] Fix | Delete
'privacy_consent_type' => 'radio',
[390] Fix | Delete
]
[391] Fix | Delete
),
[392] Fix | Delete
],
[393] Fix | Delete
'privacy_usage_text' => [
[394] Fix | Delete
'label' => __( 'Consent Usage Text', 'popup-maker' ),
[395] Fix | Delete
'desc' => function_exists( 'get_privacy_policy_url' ) ? sprintf( __( 'You can use %1$s%2$s to insert a link to your privacy policy. To customize the link text use %1$s:Link Text%2$s', 'popup-maker' ), '{{privacy_link', '}}' ) : '',
[396] Fix | Delete
'type' => 'text',
[397] Fix | Delete
'std' => pum_get_option( 'default_privacy_usage_text', __( 'If you opt in above we use this information send related content, discounts and other special offers.', 'popup-maker' ) ),
[398] Fix | Delete
'dependencies' => $privacy_enabled_dependency,
[399] Fix | Delete
],
[400] Fix | Delete
],
[401] Fix | Delete
],
[402] Fix | Delete
'actions' => [
[403] Fix | Delete
'popup' => [
[404] Fix | Delete
'closepopup' => [
[405] Fix | Delete
'label' => __( 'Close Popup', 'popup-maker' ),
[406] Fix | Delete
'type' => 'checkbox',
[407] Fix | Delete
],
[408] Fix | Delete
'closedelay' => [
[409] Fix | Delete
'label' => __( 'Delay', 'popup-maker' ),
[410] Fix | Delete
'type' => 'rangeslider',
[411] Fix | Delete
'min' => 0,
[412] Fix | Delete
'max' => 180,
[413] Fix | Delete
'step' => 1,
[414] Fix | Delete
'unit' => 's',
[415] Fix | Delete
'std' => 0,
[416] Fix | Delete
'dependencies' => [
[417] Fix | Delete
'closepopup' => true,
[418] Fix | Delete
],
[419] Fix | Delete
],
[420] Fix | Delete
'openpopup' => [
[421] Fix | Delete
'label' => __( 'Open Popup', 'popup-maker' ),
[422] Fix | Delete
'type' => 'checkbox',
[423] Fix | Delete
],
[424] Fix | Delete
'openpopup_id' => [
[425] Fix | Delete
'label' => __( 'Popup ID', 'popup-maker' ),
[426] Fix | Delete
'type' => 'select',
[427] Fix | Delete
'options' => [
[428] Fix | Delete
0 => __( 'Select a popup', 'popup-maker' ),
[429] Fix | Delete
] + PUM_Helpers::popup_selectlist( $select_args ),
[430] Fix | Delete
'std' => 0,
[431] Fix | Delete
'dependencies' => [
[432] Fix | Delete
'openpopup' => true,
[433] Fix | Delete
],
[434] Fix | Delete
],
[435] Fix | Delete
],
[436] Fix | Delete
'redirect' => [
[437] Fix | Delete
'redirect_enabled' => [
[438] Fix | Delete
'label' => __( 'Redirect', 'popup-maker' ),
[439] Fix | Delete
'desc' => __( 'Enable refreshing the page or redirecting after success.', 'popup-maker' ),
[440] Fix | Delete
'type' => 'checkbox',
[441] Fix | Delete
],
[442] Fix | Delete
'redirect' => [
[443] Fix | Delete
'label' => __( 'Redirect URL', 'popup-maker' ),
[444] Fix | Delete
'desc' => __( 'Leave blank to refresh, or enter a url that users will be taken to after success.', 'popup-maker' ),
[445] Fix | Delete
'std' => '',
[446] Fix | Delete
'dependencies' => [
[447] Fix | Delete
'redirect_enabled' => true,
[448] Fix | Delete
],
[449] Fix | Delete
],
[450] Fix | Delete
],
[451] Fix | Delete
],
[452] Fix | Delete
]
[453] Fix | Delete
);
[454] Fix | Delete
[455] Fix | Delete
return $this->resort_provider_tabs( $fields );
[456] Fix | Delete
}
[457] Fix | Delete
[458] Fix | Delete
/**
[459] Fix | Delete
* Sorts tabs so that providers come first.
[460] Fix | Delete
*
[461] Fix | Delete
* @param array $tabs
[462] Fix | Delete
*
[463] Fix | Delete
* @return array
[464] Fix | Delete
*/
[465] Fix | Delete
public function resort_provider_tabs( $tabs = [] ) {
[466] Fix | Delete
$sorted_tabs = $tabs;
[467] Fix | Delete
[468] Fix | Delete
foreach ( $tabs as $tab_id => $tab ) {
[469] Fix | Delete
if ( strpos( $tab_id, 'provider_' ) === 0 ) {
[470] Fix | Delete
PUM_Utils_Array::move_item( $sorted_tabs, $tab_id, 'down', 'general' );
[471] Fix | Delete
}
[472] Fix | Delete
}
[473] Fix | Delete
[474] Fix | Delete
return $sorted_tabs;
[475] Fix | Delete
}
[476] Fix | Delete
[477] Fix | Delete
/**
[478] Fix | Delete
* Shortcode handler
[479] Fix | Delete
*
[480] Fix | Delete
* @param array $atts shortcode attributes
[481] Fix | Delete
* @param string $content shortcode content
[482] Fix | Delete
*
[483] Fix | Delete
* @return string
[484] Fix | Delete
*/
[485] Fix | Delete
public function handler( $atts, $content = null ) {
[486] Fix | Delete
$atts = $this->shortcode_atts( $atts );
[487] Fix | Delete
[488] Fix | Delete
static $instance = 0;
[489] Fix | Delete
[490] Fix | Delete
$instance ++;
[491] Fix | Delete
[492] Fix | Delete
$atts['instance'] = $instance;
[493] Fix | Delete
[494] Fix | Delete
ob_start();
[495] Fix | Delete
[496] Fix | Delete
$data_attr = $this->data_attr( $atts );
[497] Fix | Delete
[498] Fix | Delete
$classes = implode(
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function