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/ninja-fo.../includes/Display
File: Render.php
<?php if ( ! defined( 'ABSPATH' ) ) exit;
[0] Fix | Delete
use NinjaForms\Includes\Handlers\Sanitizer;
[1] Fix | Delete
[2] Fix | Delete
class NF_Display_Render
[3] Fix | Delete
{
[4] Fix | Delete
protected static $render_instance_count = array();
[5] Fix | Delete
[6] Fix | Delete
protected static $loaded_templates = array(
[7] Fix | Delete
'app-layout',
[8] Fix | Delete
'app-before-form',
[9] Fix | Delete
'app-after-form',
[10] Fix | Delete
'app-before-fields',
[11] Fix | Delete
'app-after-fields',
[12] Fix | Delete
'app-before-field',
[13] Fix | Delete
'app-after-field',
[14] Fix | Delete
'form-layout',
[15] Fix | Delete
'form-hp',
[16] Fix | Delete
'field-layout',
[17] Fix | Delete
'field-before',
[18] Fix | Delete
'field-after',
[19] Fix | Delete
'fields-wrap',
[20] Fix | Delete
'fields-wrap-no-label',
[21] Fix | Delete
'fields-wrap-no-container',
[22] Fix | Delete
'fields-label',
[23] Fix | Delete
'fields-error',
[24] Fix | Delete
'form-error',
[25] Fix | Delete
'field-input-limit',
[26] Fix | Delete
'field-null'
[27] Fix | Delete
);
[28] Fix | Delete
[29] Fix | Delete
public static $use_test_values = FALSE;
[30] Fix | Delete
[31] Fix | Delete
protected static $form_uses_recaptcha = array();
[32] Fix | Delete
protected static $form_uses_datepicker = array();
[33] Fix | Delete
protected static $form_uses_inputmask = array();
[34] Fix | Delete
protected static $form_uses_currencymask = array();
[35] Fix | Delete
protected static $form_uses_rte = array();
[36] Fix | Delete
protected static $form_uses_textarea_media = array();
[37] Fix | Delete
protected static $form_uses_helptext = array();
[38] Fix | Delete
protected static $form_uses_starrating = array();
[39] Fix | Delete
[40] Fix | Delete
protected static $thread_id = 1;
[41] Fix | Delete
protected static $recorded_forms = [];
[42] Fix | Delete
protected static $inline_vars_recorded = [];
[43] Fix | Delete
[44] Fix | Delete
public static function localize( $form_id )
[45] Fix | Delete
{
[46] Fix | Delete
global $wp_locale;
[47] Fix | Delete
$form_id = absint( $form_id );
[48] Fix | Delete
[49] Fix | Delete
/**
[50] Fix | Delete
* Action that passes the form ID as a parameter.
[51] Fix | Delete
* @since 3.2.2
[52] Fix | Delete
*/
[53] Fix | Delete
do_action( 'nf_get_form_id', $form_id );
[54] Fix | Delete
[55] Fix | Delete
$capability = apply_filters( 'ninja_forms_display_test_values_capabilities', 'read' );
[56] Fix | Delete
if( isset( $_GET[ 'ninja_forms_test_values' ] ) && current_user_can( $capability ) ){
[57] Fix | Delete
self::$use_test_values = TRUE;
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
if( ! has_action( 'wp_footer', 'NF_Display_Render::output_templates', 9999 ) ){
[61] Fix | Delete
add_action( 'wp_footer', 'NF_Display_Render::output_templates', 9999 );
[62] Fix | Delete
}
[63] Fix | Delete
$form = Ninja_Forms()->form( $form_id )->get();
[64] Fix | Delete
[65] Fix | Delete
$settings = $form->get_settings();
[66] Fix | Delete
[67] Fix | Delete
foreach( $settings as $name => &$value ){
[68] Fix | Delete
if( ! in_array(
[69] Fix | Delete
$name,
[70] Fix | Delete
array(
[71] Fix | Delete
'changeEmailErrorMsg',
[72] Fix | Delete
'changeDateErrorMsg',
[73] Fix | Delete
'confirmFieldErrorMsg',
[74] Fix | Delete
'fieldNumberNumMinError',
[75] Fix | Delete
'fieldNumberNumMaxError',
[76] Fix | Delete
'fieldNumberIncrementBy',
[77] Fix | Delete
'formErrorsCorrectErrors',
[78] Fix | Delete
'validateRequiredField',
[79] Fix | Delete
'honeypotHoneypotError',
[80] Fix | Delete
'fieldsMarkedRequired',
[81] Fix | Delete
)
[82] Fix | Delete
) ) continue;
[83] Fix | Delete
[84] Fix | Delete
if( $value ) {
[85] Fix | Delete
$value = esc_html($value);
[86] Fix | Delete
continue;
[87] Fix | Delete
}
[88] Fix | Delete
[89] Fix | Delete
unset( $settings[ $name ] );
[90] Fix | Delete
}
[91] Fix | Delete
[92] Fix | Delete
// Remove the embed_form setting to avoid pagebuilder conflicts.
[93] Fix | Delete
$settings[ 'embed_form' ] = '';
[94] Fix | Delete
[95] Fix | Delete
$settings = array_merge( Ninja_Forms::config( 'i18nFrontEnd' ), $settings );
[96] Fix | Delete
$settings = apply_filters( 'ninja_forms_display_form_settings', $settings, $form_id );
[97] Fix | Delete
[98] Fix | Delete
$form->update_settings( $settings );
[99] Fix | Delete
[100] Fix | Delete
if( $form->get_setting( 'logged_in' ) && ! is_user_logged_in() ){
[101] Fix | Delete
echo do_shortcode( $form->get_setting( 'not_logged_in_msg' ));
[102] Fix | Delete
return;
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
if( $form->get_setting( 'sub_limit_number' ) && ! empty($form->get_setting( 'sub_limit_number' )) ){
[106] Fix | Delete
global $wpdb;
[107] Fix | Delete
$result = $wpdb->get_row( "SELECT COUNT(DISTINCT(p.ID)) AS count FROM `$wpdb->posts` AS p
[108] Fix | Delete
LEFT JOIN `$wpdb->postmeta` AS m
[109] Fix | Delete
ON p.ID = m.post_id
[110] Fix | Delete
WHERE m.meta_key = '_form_id'
[111] Fix | Delete
AND m.meta_value = $form_id
[112] Fix | Delete
AND p.post_status = 'publish'");
[113] Fix | Delete
[114] Fix | Delete
if( intval( $result->count ) >= $form->get_setting( 'sub_limit_number' ) ) {
[115] Fix | Delete
echo do_shortcode( apply_filters( 'nf_sub_limit_reached_msg', $form->get_setting( 'sub_limit_msg' ), $form_id ));
[116] Fix | Delete
return;
[117] Fix | Delete
}
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
// Get our maintenance value out of the DB.
[121] Fix | Delete
$maintenance = WPN_Helper::form_in_maintenance( $form_id );
[122] Fix | Delete
[123] Fix | Delete
// If maintenance isn't empty and the bool is set to 1 then..
[124] Fix | Delete
if( true == $maintenance ) {
[125] Fix | Delete
// Set a filterable maintenance message and echo it out.
[126] Fix | Delete
$maintenance_msg = apply_filters( 'nf_maintenance_message', esc_html__( 'This form is currently undergoing maintenance. Please try again later.', 'ninja-forms' ) );
[127] Fix | Delete
echo $maintenance_msg;
[128] Fix | Delete
[129] Fix | Delete
// bail.
[130] Fix | Delete
return false;
[131] Fix | Delete
}
[132] Fix | Delete
[133] Fix | Delete
[134] Fix | Delete
if( ! apply_filters( 'ninja_forms_display_show_form', true, $form_id, $form ) ) return;
[135] Fix | Delete
[136] Fix | Delete
$currency = $form->get_setting( 'currency', Ninja_Forms()->get_setting( 'currency' ) );
[137] Fix | Delete
$currencySymbolLookup = Ninja_Forms::config( 'CurrencySymbol' );
[138] Fix | Delete
[139] Fix | Delete
$currencySymbol = self::getCurrencySymbol($currencySymbolLookup,$currency) ;
[140] Fix | Delete
$form->update_setting( 'currency_symbol', $currencySymbol );
[141] Fix | Delete
[142] Fix | Delete
$title = apply_filters( 'ninja_forms_form_title', $form->get_setting( 'title' ), $form_id );
[143] Fix | Delete
$form->update_setting( 'title', esc_html( $title ) );
[144] Fix | Delete
[145] Fix | Delete
$before_form = apply_filters( 'ninja_forms_display_before_form', '', $form_id );
[146] Fix | Delete
$form->update_setting( 'beforeForm', $before_form );
[147] Fix | Delete
[148] Fix | Delete
$before_fields = apply_filters( 'ninja_forms_display_before_fields', '', $form_id );
[149] Fix | Delete
$form->update_setting( 'beforeFields', $before_fields );
[150] Fix | Delete
[151] Fix | Delete
$after_fields = apply_filters( 'ninja_forms_display_after_fields', '', $form_id );
[152] Fix | Delete
$form->update_setting( 'afterFields', $after_fields );
[153] Fix | Delete
[154] Fix | Delete
$after_form = apply_filters( 'ninja_forms_display_after_form', '', $form_id );
[155] Fix | Delete
$form->update_setting( 'afterForm', $after_form );
[156] Fix | Delete
[157] Fix | Delete
$form_fields = Ninja_Forms()->form( $form_id )->get_fields();
[158] Fix | Delete
$fields = array();
[159] Fix | Delete
[160] Fix | Delete
if( empty( $form_fields ) ){
[161] Fix | Delete
echo esc_html__( 'No Fields Found.', 'ninja-forms' );
[162] Fix | Delete
} else {
[163] Fix | Delete
[164] Fix | Delete
// TODO: Replace unique field key checks with a refactored model/factory.
[165] Fix | Delete
$unique_field_keys = array();
[166] Fix | Delete
$cache_updated = false;
[167] Fix | Delete
[168] Fix | Delete
foreach ($form_fields as $field) {
[169] Fix | Delete
[170] Fix | Delete
if( is_object( $field ) ) {
[171] Fix | Delete
$field = array(
[172] Fix | Delete
'id' => $field->get_id(),
[173] Fix | Delete
'settings' => $field->get_settings()
[174] Fix | Delete
);
[175] Fix | Delete
}
[176] Fix | Delete
[177] Fix | Delete
$field_id = $field[ 'id' ];
[178] Fix | Delete
[179] Fix | Delete
[180] Fix | Delete
/*
[181] Fix | Delete
* Duplicate field check.
[182] Fix | Delete
* TODO: Replace unique field key checks with a refactored model/factory.
[183] Fix | Delete
*/
[184] Fix | Delete
$field_key = $field[ 'settings' ][ 'key' ];
[185] Fix | Delete
[186] Fix | Delete
if( in_array( $field_key, $unique_field_keys ) || '' == $field_key ){
[187] Fix | Delete
[188] Fix | Delete
// Delete the field.
[189] Fix | Delete
Ninja_Forms()->request( 'delete-field' )->data( array( 'field_id' => $field_id ) )->dispatch();
[190] Fix | Delete
[191] Fix | Delete
// Remove the field from cache.
[192] Fix | Delete
if( $form_cache ) {
[193] Fix | Delete
if( isset( $form_cache[ 'fields' ] ) ){
[194] Fix | Delete
foreach( $form_cache[ 'fields' ] as $cached_field_key => $cached_field ){
[195] Fix | Delete
if( ! isset( $cached_field[ 'id' ] ) ) continue;
[196] Fix | Delete
if( $field_id != $cached_field[ 'id' ] ) continue;
[197] Fix | Delete
[198] Fix | Delete
// Flag cache to update.
[199] Fix | Delete
$cache_updated = true;
[200] Fix | Delete
[201] Fix | Delete
unset( $form_cache[ 'fields' ][ $cached_field_key ] ); // Remove the field.
[202] Fix | Delete
}
[203] Fix | Delete
}
[204] Fix | Delete
}
[205] Fix | Delete
[206] Fix | Delete
continue; // Skip the duplicate field.
[207] Fix | Delete
}
[208] Fix | Delete
array_push( $unique_field_keys, $field_key ); // Log unique key.
[209] Fix | Delete
/* END Duplicate field check. */
[210] Fix | Delete
[211] Fix | Delete
$field_type = $field[ 'settings' ][ 'type' ];
[212] Fix | Delete
[213] Fix | Delete
if( ! is_string( $field_type ) ) continue;
[214] Fix | Delete
[215] Fix | Delete
if( ! isset( Ninja_Forms()->fields[ $field_type ] ) ) {
[216] Fix | Delete
$field = self::constructUnknownField($field);
[217] Fix | Delete
$field_type = $field[ 'settings' ][ 'type' ];
[218] Fix | Delete
}
[219] Fix | Delete
[220] Fix | Delete
$fieldBeforeFilters = $field;
[221] Fix | Delete
[222] Fix | Delete
$field = self::applyLocalizeFilters($field, $field_type);
[223] Fix | Delete
[224] Fix | Delete
$field_class = Ninja_Forms()->fields[$field_type];
[225] Fix | Delete
[226] Fix | Delete
if (self::$use_test_values) {
[227] Fix | Delete
$field[ 'value' ] = $field_class->get_test_value();
[228] Fix | Delete
}
[229] Fix | Delete
[230] Fix | Delete
$field= self::ensureFieldArrayStructureValidity($field,$fieldBeforeFilters);
[231] Fix | Delete
[232] Fix | Delete
// Copy field ID into the field settings array for use in localized data.
[233] Fix | Delete
$field[ 'settings' ][ 'id' ] = $field[ 'id' ];
[234] Fix | Delete
[235] Fix | Delete
[236] Fix | Delete
/*
[237] Fix | Delete
* TODO: For backwards compatibility, run the original action, get contents from the output buffer, and return the contents through the filter. Also display a PHP Notice for a deprecate filter.
[238] Fix | Delete
*/
[239] Fix | Delete
[240] Fix | Delete
$display_before = apply_filters( 'ninja_forms_display_before_field_type_' . $field[ 'settings' ][ 'type' ], '' );
[241] Fix | Delete
$display_before = apply_filters( 'ninja_forms_display_before_field_key_' . $field[ 'settings' ][ 'key' ], $display_before );
[242] Fix | Delete
$field[ 'settings' ][ 'beforeField' ] = $display_before;
[243] Fix | Delete
[244] Fix | Delete
$display_after = apply_filters( 'ninja_forms_display_after_field_type_' . $field[ 'settings' ][ 'type' ], '' );
[245] Fix | Delete
$display_after = apply_filters( 'ninja_forms_display_after_field_key_' . $field[ 'settings' ][ 'key' ], $display_after );
[246] Fix | Delete
$field[ 'settings' ][ 'afterField' ] = $display_after;
[247] Fix | Delete
[248] Fix | Delete
$templates = $field_class->get_templates();
[249] Fix | Delete
[250] Fix | Delete
if (!array($templates)) {
[251] Fix | Delete
$templates = array($templates);
[252] Fix | Delete
}
[253] Fix | Delete
[254] Fix | Delete
foreach ($templates as $template) {
[255] Fix | Delete
self::load_template('fields-' . $template);
[256] Fix | Delete
}
[257] Fix | Delete
[258] Fix | Delete
$settings = $field[ 'settings' ];
[259] Fix | Delete
// Scrub any values that might be stored in data. Defaults will set these later.
[260] Fix | Delete
$settings['value'] = '';
[261] Fix | Delete
foreach ($settings as $key => $setting) {
[262] Fix | Delete
if (is_numeric($setting) && 'custom_mask' != $key )
[263] Fix | Delete
$settings[$key] =
[264] Fix | Delete
floatval($setting);
[265] Fix | Delete
}
[266] Fix | Delete
[267] Fix | Delete
if( ! isset( $settings[ 'label_pos' ] ) || 'default' == $settings[ 'label_pos' ] ){
[268] Fix | Delete
$settings[ 'label_pos' ] = $form->get_setting( 'default_label_pos' );
[269] Fix | Delete
}
[270] Fix | Delete
[271] Fix | Delete
$settings[ 'parentType' ] = $field_class->get_parent_type();
[272] Fix | Delete
[273] Fix | Delete
if( 'list' == $settings[ 'parentType' ] && isset( $settings[ 'options' ] ) && is_array( $settings[ 'options' ] ) ){
[274] Fix | Delete
$settings[ 'options' ] = apply_filters( 'ninja_forms_render_options', $settings[ 'options' ], $settings );
[275] Fix | Delete
$settings[ 'options' ] = apply_filters( 'ninja_forms_render_options_' . $field_type, $settings[ 'options' ], $settings );
[276] Fix | Delete
}
[277] Fix | Delete
[278] Fix | Delete
$default_value = ( isset( $settings[ 'default' ] ) ) ? $settings[ 'default' ] : null;
[279] Fix | Delete
$default_value = apply_filters('ninja_forms_render_default_value', $default_value, $field_type, $settings);
[280] Fix | Delete
if ( $default_value ) {
[281] Fix | Delete
[282] Fix | Delete
$default_value = preg_replace( '/{[^}]}/', '', $default_value );
[283] Fix | Delete
[284] Fix | Delete
if ($default_value) {
[285] Fix | Delete
$settings['value'] = $default_value;
[286] Fix | Delete
[287] Fix | Delete
if( ! is_array( $default_value ) ) {
[288] Fix | Delete
ob_start();
[289] Fix | Delete
do_shortcode( $settings['value'] );
[290] Fix | Delete
$ob = ob_get_clean();
[291] Fix | Delete
[292] Fix | Delete
if( ! $ob ) {
[293] Fix | Delete
$settings['value'] = do_shortcode( $settings['value'] );
[294] Fix | Delete
}
[295] Fix | Delete
}
[296] Fix | Delete
}
[297] Fix | Delete
}
[298] Fix | Delete
[299] Fix | Delete
$thousands_sep = $wp_locale->number_format[ 'thousands_sep'];
[300] Fix | Delete
$decimal_point = $wp_locale->number_format[ 'decimal_point' ];
[301] Fix | Delete
$currencySymbol = Ninja_Forms()->get_setting('currency_symbol');
[302] Fix | Delete
[303] Fix | Delete
$settings = static::ensureProductRelatedCostLocalizeSettings($settings,$decimal_point,$thousands_sep,$currencySymbol);
[304] Fix | Delete
[305] Fix | Delete
$settings['element_templates'] = $templates;
[306] Fix | Delete
$settings['old_classname'] = $field_class->get_old_classname();
[307] Fix | Delete
$settings['wrap_template'] = $field_class->get_wrap_template();
[308] Fix | Delete
[309] Fix | Delete
$settings['label']=\wp_kses_post(Sanitizer::preventScriptTriggerInHtmlOutput($settings['label']));
[310] Fix | Delete
[311] Fix | Delete
$fields[] = apply_filters( 'ninja_forms_localize_field_settings_' . $field_type, $settings, $form );
[312] Fix | Delete
[313] Fix | Delete
if( 'recaptcha' == $field[ 'settings' ][ 'type' ] ){
[314] Fix | Delete
array_push( self::$form_uses_recaptcha, $form_id );
[315] Fix | Delete
}
[316] Fix | Delete
if( 'date' == $field[ 'settings' ][ 'type' ] || self::checkRepeaterChildType($field, 'date') ){
[317] Fix | Delete
array_push( self::$form_uses_datepicker, $form_id );
[318] Fix | Delete
}
[319] Fix | Delete
if( 'starrating' == $field[ 'settings' ][ 'type' ] || self::checkRepeaterChildType($field, "starrating")){
[320] Fix | Delete
array_push( self::$form_uses_starrating, $form_id );
[321] Fix | Delete
}
[322] Fix | Delete
if( isset( $field[ 'settings' ][ 'mask' ] ) && $field[ 'settings' ][ 'mask' ] || self::checkRepeaterChildSetting($field, "mask", null) ){
[323] Fix | Delete
array_push( self::$form_uses_inputmask, $form_id );
[324] Fix | Delete
}
[325] Fix | Delete
if( isset( $field[ 'settings' ][ 'mask' ] ) && 'currency' == $field[ 'settings' ][ 'mask' ] || self::checkRepeaterChildSetting($field, "mask", "currency") ){
[326] Fix | Delete
array_push( self::$form_uses_currencymask, $form_id );
[327] Fix | Delete
}
[328] Fix | Delete
if( isset( $field[ 'settings' ][ 'textarea_rte' ] ) && $field[ 'settings' ][ 'textarea_rte' ] || self::checkRepeaterChildSetting($field, "textarea_rte", null) ){
[329] Fix | Delete
array_push( self::$form_uses_rte, $form_id );
[330] Fix | Delete
}
[331] Fix | Delete
if( isset( $field[ 'settings' ][ 'textarea_media' ] ) && $field[ 'settings' ][ 'textarea_media' ] || self::checkRepeaterChildSetting($field, "textarea_media", null) ){
[332] Fix | Delete
array_push( self::$form_uses_textarea_media, $form_id );
[333] Fix | Delete
}
[334] Fix | Delete
// strip all tags except image tags
[335] Fix | Delete
if( isset( $field[ 'settings' ][ 'help_text' ] ) &&
[336] Fix | Delete
strip_tags( $field[ 'settings' ][ 'help_text' ], '<img>'
[337] Fix | Delete
) ){
[338] Fix | Delete
array_push( self::$form_uses_helptext, $form_id );
[339] Fix | Delete
}
[340] Fix | Delete
}
[341] Fix | Delete
[342] Fix | Delete
if( $cache_updated ) {
[343] Fix | Delete
WPN_Helper::update_nf_cache( $form_id, $form_cache ); // Update form cache without duplicate fields.
[344] Fix | Delete
}
[345] Fix | Delete
}
[346] Fix | Delete
[347] Fix | Delete
$fields = apply_filters( 'ninja_forms_display_fields', $fields, $form_id );
[348] Fix | Delete
[349] Fix | Delete
if(!isset($_GET['nf_preview_form'])){
[350] Fix | Delete
/* Render Instance Fix */
[351] Fix | Delete
$instance_id = $form_id;
[352] Fix | Delete
if( ! isset(self::$render_instance_count[$form_id]) ) self::$render_instance_count[$form_id] = 0;
[353] Fix | Delete
if(self::$render_instance_count[$form_id]) {
[354] Fix | Delete
$instance_id .= '_' . self::$render_instance_count[$form_id];
[355] Fix | Delete
foreach( $fields as $id => $field ) {
[356] Fix | Delete
$fields[$id]['id'] .= '_' . self::$render_instance_count[$form_id];
[357] Fix | Delete
}
[358] Fix | Delete
}
[359] Fix | Delete
self::$render_instance_count[$form_id]++;
[360] Fix | Delete
$form_id = $instance_id;
[361] Fix | Delete
/* END Render Instance Fix */
[362] Fix | Delete
}
[363] Fix | Delete
[364] Fix | Delete
// Output Form Container
[365] Fix | Delete
do_action( 'ninja_forms_before_container', $form_id, $form->get_settings(), $form_fields );
[366] Fix | Delete
Ninja_Forms::template( 'display-form-container.html.php', compact( 'form_id' ) );
[367] Fix | Delete
[368] Fix | Delete
$form_id = "$form_id";
[369] Fix | Delete
[370] Fix | Delete
?>
[371] Fix | Delete
<!-- That data is being printed as a workaround to page builders reordering the order of the scripts loaded-->
[372] Fix | Delete
<script>var formDisplay=1;var nfForms=nfForms||[];var form=[];form.id='<?php echo $form_id; ?>';form.settings=<?php echo wp_json_encode( $form->get_settings() ); ?>;form.fields=<?php echo wp_json_encode( $fields ); ?>;nfForms.push(form);</script>
[373] Fix | Delete
<?php
[374] Fix | Delete
[375] Fix | Delete
self::enqueue_scripts( $form_id );
[376] Fix | Delete
}
[377] Fix | Delete
[378] Fix | Delete
/**
[379] Fix | Delete
* Transform the inline JS into a variable passed to wp_localize_script
[380] Fix | Delete
*
[381] Fix | Delete
* @param array $fields
[382] Fix | Delete
* @param string $form_id
[383] Fix | Delete
* @param object $form
[384] Fix | Delete
* @return void
[385] Fix | Delete
* */
[386] Fix | Delete
protected static function transformInlineVars($fields, $form_id, $form_settings)
[387] Fix | Delete
{
[388] Fix | Delete
$thread_id = sprintf("%08x", abs(crc32($_SERVER['REMOTE_ADDR'] . $_SERVER['REQUEST_TIME'] . $_SERVER['REMOTE_PORT'])));
[389] Fix | Delete
if($thread_id !== self::$thread_id || isset( $_GET['nf_preview_form'] ) ){
[390] Fix | Delete
self::$recorded_forms = [];
[391] Fix | Delete
}
[392] Fix | Delete
self::$thread_id = $thread_id;
[393] Fix | Delete
$set_form = [];
[394] Fix | Delete
$set_form['id'] = $form_id;
[395] Fix | Delete
$set_form['settings'] = $form_settings;
[396] Fix | Delete
$set_form['fields'] = $fields;
[397] Fix | Delete
array_push(self::$recorded_forms, $set_form);
[398] Fix | Delete
self::$inline_vars_recorded = [
[399] Fix | Delete
"formDisplay" => 1,
[400] Fix | Delete
"form" => $set_form,
[401] Fix | Delete
"nfForms" => self::$recorded_forms,
[402] Fix | Delete
];
[403] Fix | Delete
}
[404] Fix | Delete
/**
[405] Fix | Delete
* Ensure that product related costs on `localize` method have intended number format
[406] Fix | Delete
*
[407] Fix | Delete
* @param array $settings
[408] Fix | Delete
* @param string $decimal_point
[409] Fix | Delete
* @param string $thousands_sep
[410] Fix | Delete
* @return array
[411] Fix | Delete
*/
[412] Fix | Delete
protected static function ensureProductRelatedCostLocalizeSettings(array $settings, $decimal_point,$thousands_sep, $currencySymbol): array
[413] Fix | Delete
{
[414] Fix | Delete
if ('shipping' == $settings['type']) {
[415] Fix | Delete
$settings['shipping_cost'] = preg_replace('/[^\d,\.]/', '', $settings['shipping_cost']);
[416] Fix | Delete
$settings['shipping_cost'] = str_replace($currencySymbol, '', $settings['shipping_cost']);
[417] Fix | Delete
[418] Fix | Delete
$settings['shipping_cost'] = str_replace($decimal_point, '||', $settings['shipping_cost']);
[419] Fix | Delete
$settings['shipping_cost'] = str_replace($thousands_sep, '', $settings['shipping_cost']);
[420] Fix | Delete
$settings['shipping_cost'] = str_replace('||', '.', $settings['shipping_cost']);
[421] Fix | Delete
} elseif ('product' == $settings['type']) {
[422] Fix | Delete
$settings['product_price'] = preg_replace('/[^\d,\.]/', '', $settings['product_price']);
[423] Fix | Delete
$settings['product_price'] = str_replace($currencySymbol, '', $settings['product_price']);
[424] Fix | Delete
[425] Fix | Delete
$settings['product_price'] = str_replace($decimal_point, '||', $settings['product_price']);
[426] Fix | Delete
$settings['product_price'] = str_replace($thousands_sep, '', $settings['product_price']);
[427] Fix | Delete
$settings['product_price'] = str_replace('||', '.', $settings['product_price']);
[428] Fix | Delete
} elseif ('total' == $settings['type'] && isset($settings['value'])) {
[429] Fix | Delete
if (empty($settings['value'])) $settings['value'] = 0;
[430] Fix | Delete
$settings['value'] = number_format((float)$settings['value'], 2);
[431] Fix | Delete
}
[432] Fix | Delete
return $settings;
[433] Fix | Delete
}
[434] Fix | Delete
[435] Fix | Delete
/**
[436] Fix | Delete
* Construct field array for an unknown field type
[437] Fix | Delete
*
[438] Fix | Delete
* @param array $field
[439] Fix | Delete
* @return array
[440] Fix | Delete
*/
[441] Fix | Delete
protected static function constructUnknownField( $field): array
[442] Fix | Delete
{
[443] Fix | Delete
$unknown_field = NF_Fields_Unknown::create( $field );
[444] Fix | Delete
[445] Fix | Delete
$return = array(
[446] Fix | Delete
'settings' => $unknown_field->get_settings(),
[447] Fix | Delete
'id' => $unknown_field->get_id()
[448] Fix | Delete
);
[449] Fix | Delete
[450] Fix | Delete
return $return;
[451] Fix | Delete
}
[452] Fix | Delete
[453] Fix | Delete
/**
[454] Fix | Delete
* Apply localize filters to field
[455] Fix | Delete
*
[456] Fix | Delete
* Property types are not declared because we cannot guarantee what is
[457] Fix | Delete
* returned from apply_filters.
[458] Fix | Delete
*
[459] Fix | Delete
* @param array $field
[460] Fix | Delete
* @param string $field_type
[461] Fix | Delete
* @return array
[462] Fix | Delete
*/
[463] Fix | Delete
protected static function applyLocalizeFilters($field, $field_type)
[464] Fix | Delete
{
[465] Fix | Delete
$wip = apply_filters('ninja_forms_localize_fields', $field);
[466] Fix | Delete
[467] Fix | Delete
$return = apply_filters('ninja_forms_localize_field_' . $field_type, $wip);
[468] Fix | Delete
[469] Fix | Delete
return $return;
[470] Fix | Delete
}
[471] Fix | Delete
[472] Fix | Delete
/**
[473] Fix | Delete
* Ensure that field array has proper construction after localize filters
[474] Fix | Delete
*
[475] Fix | Delete
* After any WP filter, we cannot assume that all properties are intact, so
[476] Fix | Delete
* ensure that our structure is valid. Checks field type and calls method
[477] Fix | Delete
* that ensures validity of that field typ.
[478] Fix | Delete
*
[479] Fix | Delete
* @param array $field
[480] Fix | Delete
* @param array $fieldBeforeFilters
[481] Fix | Delete
* @return array
[482] Fix | Delete
*/
[483] Fix | Delete
protected static function ensureFieldArrayStructureValidity($field, array $fieldBeforeFilters): array
[484] Fix | Delete
{
[485] Fix | Delete
// filter altered field beyond repair, fallback to before
[486] Fix | Delete
if(!is_array($field)){
[487] Fix | Delete
return $fieldBeforeFilters;
[488] Fix | Delete
}
[489] Fix | Delete
[490] Fix | Delete
// initialize return value to incoming value
[491] Fix | Delete
$return = $field;
[492] Fix | Delete
[493] Fix | Delete
if ('recaptcha' === $field['settings']['type']) {
[494] Fix | Delete
$return = self::ensureRecaptchaFieldStructureValidity($return);
[495] Fix | Delete
}
[496] Fix | Delete
[497] Fix | Delete
return $return;
[498] Fix | Delete
}
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function