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/Admin/Menus
File: Settings.php
<?php if ( ! defined( 'ABSPATH' ) ) exit;
[0] Fix | Delete
[1] Fix | Delete
final class NF_Admin_Menus_Settings extends NF_Abstracts_Submenu
[2] Fix | Delete
{
[3] Fix | Delete
public $parent_slug = 'ninja-forms';
[4] Fix | Delete
[5] Fix | Delete
public $menu_slug = 'nf-settings';
[6] Fix | Delete
[7] Fix | Delete
public $position = 5;
[8] Fix | Delete
[9] Fix | Delete
protected $_prefix = 'ninja_forms';
[10] Fix | Delete
[11] Fix | Delete
public function __construct()
[12] Fix | Delete
{
[13] Fix | Delete
parent::__construct();
[14] Fix | Delete
[15] Fix | Delete
if( isset( $_POST[ 'update_ninja_forms_settings' ] ) ) {
[16] Fix | Delete
add_action( 'admin_init', array( $this, 'update_settings' ) );
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
add_action( 'admin_body_class', array( $this, 'body_class' ) );
[20] Fix | Delete
[21] Fix | Delete
// Catch Contact Form 7 reCAPTCHA conflict.
[22] Fix | Delete
add_filter( 'nf_admin_notices', array( $this, 'ninja_forms_cf7_notice' ) );
[23] Fix | Delete
[24] Fix | Delete
}
[25] Fix | Delete
[26] Fix | Delete
public function body_class( $classes )
[27] Fix | Delete
{
[28] Fix | Delete
// Add class for the builder.
[29] Fix | Delete
if( isset( $_GET['page'] ) && $_GET['page'] == $this->menu_slug ) {
[30] Fix | Delete
$classes = "$classes ninja-forms-settings";
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
return $classes;
[34] Fix | Delete
}
[35] Fix | Delete
[36] Fix | Delete
/**
[37] Fix | Delete
* Function to notify users of CF7 conflict
[38] Fix | Delete
*
[39] Fix | Delete
* Since 3.0
[40] Fix | Delete
*
[41] Fix | Delete
* @param (array) $notices
[42] Fix | Delete
* @return (array) $notices
[43] Fix | Delete
*/
[44] Fix | Delete
public function ninja_forms_cf7_notice( $notices )
[45] Fix | Delete
{
[46] Fix | Delete
// If we don't have recaptcha keys, bail.
[47] Fix | Delete
$recaptcha_site_key = Ninja_Forms()->get_settings();
[48] Fix | Delete
if ( $recaptcha_site_key[ 'recaptcha_site_key' ] === '' ) {
[49] Fix | Delete
return $notices;
[50] Fix | Delete
}
[51] Fix | Delete
// If we can detect Contact Form 7...
[52] Fix | Delete
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
[53] Fix | Delete
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
[54] Fix | Delete
$notices[ 'cf7' ] = array(
[55] Fix | Delete
'title' => esc_html__( 'Contact Form 7 is currently activated.', 'ninja-forms' ),
[56] Fix | Delete
'msg' => sprintf( esc_html__( 'Please be aware that there is an issue with Contact Form 7 that breaks reCAPTCHA in other plugins.%sIf you need to use reCAPTCHA on any of your Ninja Forms, you will need to disable Contact Form 7.', 'ninja-forms' ), '<br />' ),
[57] Fix | Delete
'int' => 0
[58] Fix | Delete
);
[59] Fix | Delete
}
[60] Fix | Delete
return $notices;
[61] Fix | Delete
}
[62] Fix | Delete
[63] Fix | Delete
public function get_page_title()
[64] Fix | Delete
{
[65] Fix | Delete
return esc_html__( 'Settings', 'ninja-forms' );
[66] Fix | Delete
}
[67] Fix | Delete
[68] Fix | Delete
public function get_capability()
[69] Fix | Delete
{
[70] Fix | Delete
return apply_filters( 'ninja_forms_admin_settings_capabilities', $this->capability );
[71] Fix | Delete
}
[72] Fix | Delete
[73] Fix | Delete
public function display()
[74] Fix | Delete
{
[75] Fix | Delete
$tabs = apply_filters( 'ninja_forms_settings_tabs', array(
[76] Fix | Delete
'settings' => esc_html__( 'Settings', 'ninja-forms' ),
[77] Fix | Delete
'licenses' => esc_html__( 'Licenses', 'ninja-forms' )
[78] Fix | Delete
)
[79] Fix | Delete
);
[80] Fix | Delete
[81] Fix | Delete
$tab_keys = array_keys( $tabs );
[82] Fix | Delete
$active_tab = ( isset( $_GET[ 'tab' ] ) ) ? WPN_Helper::sanitize_text_field($_GET[ 'tab' ]) : reset( $tab_keys );
[83] Fix | Delete
[84] Fix | Delete
wp_enqueue_style( 'nf-admin-settings', Ninja_Forms::$url . 'assets/css/admin-settings.css' );
[85] Fix | Delete
[86] Fix | Delete
$groups = Ninja_Forms()->config( 'PluginSettingsGroups' );
[87] Fix | Delete
[88] Fix | Delete
$grouped_settings = $this->get_settings();
[89] Fix | Delete
[90] Fix | Delete
$save_button_text = esc_html__( 'Save Settings', 'ninja-forms' );
[91] Fix | Delete
[92] Fix | Delete
$setting_defaults = Ninja_Forms()->get_settings();
[93] Fix | Delete
[94] Fix | Delete
$errors = array();
[95] Fix | Delete
[96] Fix | Delete
foreach( $grouped_settings as $group => $settings ){
[97] Fix | Delete
[98] Fix | Delete
foreach( $settings as $id => $setting ){
[99] Fix | Delete
[100] Fix | Delete
$value = ( isset( $setting_defaults[ $id ] ) ) ? $setting_defaults[$id] : '';
[101] Fix | Delete
[102] Fix | Delete
$grouped_settings[$group][$id]['id'] = $this->prefix( $grouped_settings[$group][$id]['id'] );
[103] Fix | Delete
$grouped_settings[$group][$id]['value'] = $value;
[104] Fix | Delete
[105] Fix | Delete
$grouped_settings[$group][$id] = apply_filters( 'ninja_forms_check_setting_' . $id, $grouped_settings[$group][$id] );
[106] Fix | Delete
[107] Fix | Delete
if( ! isset( $grouped_settings[$group][$id][ 'errors' ] ) || ! $grouped_settings[$group][$id][ 'errors' ] ) continue;
[108] Fix | Delete
[109] Fix | Delete
if( ! is_array( $grouped_settings[$group][$id][ 'errors' ] ) ) $grouped_settings[$group][$id][ 'errors' ] = array( $grouped_settings[$group][$id][ 'errors' ] );
[110] Fix | Delete
[111] Fix | Delete
foreach( $grouped_settings[$group][$id][ 'errors' ] as $old_key => $error ){
[112] Fix | Delete
$new_key = $grouped_settings[$group][$id][ 'id' ] . "[" . $old_key . "]";
[113] Fix | Delete
$errors[ $new_key ] = $error;
[114] Fix | Delete
$grouped_settings[$group][$id][ 'errors'][ $new_key ] = $error;
[115] Fix | Delete
unset( $grouped_settings[$group][$id][ 'errors' ][ $old_key ] );
[116] Fix | Delete
}
[117] Fix | Delete
}
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
$grouped_settings[ 'general' ][ 'version' ][ 'value' ] = Ninja_Forms::VERSION;
[121] Fix | Delete
[122] Fix | Delete
$saved_fields = Ninja_Forms()->form()->get_fields( array( 'saved' => 1 ) );
[123] Fix | Delete
[124] Fix | Delete
foreach( $saved_fields as $saved_field ){
[125] Fix | Delete
[126] Fix | Delete
$saved_field_id = $saved_field->get_id();
[127] Fix | Delete
[128] Fix | Delete
$grouped_settings[ 'saved_fields'][] = array(
[129] Fix | Delete
'id' => '',
[130] Fix | Delete
'type' => 'html',
[131] Fix | Delete
'html' => '<a class="js-delete-saved-field button button-secondary" data-id="' . $saved_field_id . '">' . esc_html__( 'Delete', 'ninja-forms' ) . '</a>',
[132] Fix | Delete
'label' => $saved_field->get_setting( 'label' ),
[133] Fix | Delete
[134] Fix | Delete
);
[135] Fix | Delete
}
[136] Fix | Delete
[137] Fix | Delete
$forms = Ninja_Forms()->form()->get_forms();
[138] Fix | Delete
$form_options = array();
[139] Fix | Delete
foreach( $forms as $form ){
[140] Fix | Delete
$form_options[] = array( 'id' => $form->get_id(),
[141] Fix | Delete
'title' => $form->get_setting( 'title' ) );
[142] Fix | Delete
}
[143] Fix | Delete
$form_options = apply_filters( 'ninja_forms_submission_filter_form_options', $form_options );
[144] Fix | Delete
asort($form_options);
[145] Fix | Delete
[146] Fix | Delete
if ( get_option( 'ninja_forms_allow_tracking' ) && '1' == get_option( 'ninja_forms_allow_tracking' ) ) {
[147] Fix | Delete
$allow_tel = 1;
[148] Fix | Delete
} else {
[149] Fix | Delete
$allow_tel = 0;
[150] Fix | Delete
}
[151] Fix | Delete
[152] Fix | Delete
wp_enqueue_script( 'jBox', Ninja_Forms::$url . 'assets/js/min/jBox.min.js', array( 'jquery' ) );
[153] Fix | Delete
wp_enqueue_style( 'nf-combobox', Ninja_Forms::$url . 'assets/css/combobox.css' );
[154] Fix | Delete
wp_enqueue_style( 'jBox', Ninja_Forms::$url . 'assets/css/jBox.css' );
[155] Fix | Delete
wp_register_script( 'ninja_forms_admin_menu_settings', Ninja_Forms::$url . 'assets/js/admin-settings.js', array( 'jquery' ), FALSE, TRUE );
[156] Fix | Delete
[157] Fix | Delete
/**
[158] Fix | Delete
* This wp_localize_script call should eventually be removed.
[159] Fix | Delete
*
[160] Fix | Delete
* TODO: Remove this function call when we've replaced references to nf_settings in our JS with nfAdmin.
[161] Fix | Delete
*/
[162] Fix | Delete
wp_localize_script( 'ninja_forms_admin_menu_settings', 'nf_settings', array(
[163] Fix | Delete
'ajax_url' => admin_url( 'admin-ajax.php' ),
[164] Fix | Delete
'forms' => $form_options,
[165] Fix | Delete
'nf_nuke_title' => esc_html__( 'Remove ALL Ninja Forms data and uninstall?', 'ninja-forms' ),
[166] Fix | Delete
'nonce' => wp_create_nonce( "ninja_forms_settings_nonce" ),
[167] Fix | Delete
'batchNonce' => wp_create_nonce( 'ninja_forms_batch_nonce' ),
[168] Fix | Delete
'i18n' => array(
[169] Fix | Delete
'trashExpiredSubsMessage' => esc_html__( 'Are you sure you want to trash all expired submissions?', 'ninja-forms' ),
[170] Fix | Delete
'trashExpiredSubsButtonPrimary' => esc_html__( 'Trash', 'ninja-forms' ),
[171] Fix | Delete
'trashExpiredSubsButtonSecondary' => esc_html__( 'Cancel', 'ninja-forms' ),
[172] Fix | Delete
),
[173] Fix | Delete
'allow_telemetry' => $allow_tel,
[174] Fix | Delete
));
[175] Fix | Delete
[176] Fix | Delete
/**
[177] Fix | Delete
* Duplicating the localization above with an nfAdmin variable for consistency.
[178] Fix | Delete
*
[179] Fix | Delete
* Eventually, we should remove all references to nf_settings, which isn't very descriptive or specific with nfAdmin instead.
[180] Fix | Delete
*
[181] Fix | Delete
* TODO: Replace references to nf_settings object in admin JS files with nfAdmin.
[182] Fix | Delete
*/
[183] Fix | Delete
wp_localize_script( 'ninja_forms_admin_menu_settings', 'nfAdmin', array(
[184] Fix | Delete
'ajax_url' => admin_url( 'admin-ajax.php' ),
[185] Fix | Delete
'forms' => $form_options,
[186] Fix | Delete
'nf_nuke_title' => esc_html__( 'Remove ALL Ninja Forms data and uninstall?', 'ninja-forms' ),
[187] Fix | Delete
'nonce' => wp_create_nonce( "ninja_forms_settings_nonce" ),
[188] Fix | Delete
'batchNonce' => wp_create_nonce( 'ninja_forms_batch_nonce' ),
[189] Fix | Delete
'i18n' => array(
[190] Fix | Delete
'trashExpiredSubsMessage' => esc_html__( 'Are you sure you want to trash all expired submissions?', 'ninja-forms' ),
[191] Fix | Delete
'trashExpiredSubsButtonPrimary' => esc_html__( 'Trash', 'ninja-forms' ),
[192] Fix | Delete
'trashExpiredSubsButtonSecondary' => esc_html__( 'Cancel', 'ninja-forms' ),
[193] Fix | Delete
),
[194] Fix | Delete
'allow_telemetry' => $allow_tel,
[195] Fix | Delete
));
[196] Fix | Delete
wp_enqueue_script( 'nf-ninja-modal', Ninja_Forms::$url . 'assets/js/lib/ninjaModal.js' );
[197] Fix | Delete
wp_enqueue_script( 'nf-ninja-batch-processor', Ninja_Forms::$url . 'assets/js/lib/batch-processor.js' );
[198] Fix | Delete
wp_enqueue_style( 'nf-font-awesome', Ninja_Forms::$url . 'assets/css/font-awesome.min.css' );
[199] Fix | Delete
[200] Fix | Delete
[201] Fix | Delete
wp_enqueue_script( 'ninja_forms_admin_menu_settings' );
[202] Fix | Delete
[203] Fix | Delete
Ninja_Forms::template( 'admin-menu-settings.html.php', compact( 'tabs', 'active_tab', 'groups', 'grouped_settings', 'save_button_text', 'errors' ) );
[204] Fix | Delete
[205] Fix | Delete
}
[206] Fix | Delete
[207] Fix | Delete
public function update_settings()
[208] Fix | Delete
{
[209] Fix | Delete
if( ! wp_verify_nonce( $_POST['update_ninja_forms_settings_nonce'], 'ninja_forms_settings_nonce' ) ) {
[210] Fix | Delete
wp_die( esc_html__( 'Your request could not be verified. Please try again.', 'ninja-forms' ) );
[211] Fix | Delete
}
[212] Fix | Delete
[213] Fix | Delete
if( ! current_user_can( apply_filters( 'ninja_forms_admin_settings_capabilities', 'manage_options' ) ) ) return;
[214] Fix | Delete
[215] Fix | Delete
if( ! isset( $_POST[ $this->_prefix ] ) ) return;
[216] Fix | Delete
[217] Fix | Delete
$settings = WPN_Helper::sanitize_text_field($_POST[ 'ninja_forms' ]);
[218] Fix | Delete
[219] Fix | Delete
if( isset( $settings[ 'currency' ] ) ){
[220] Fix | Delete
$currency = sanitize_text_field( $settings[ 'currency' ] );
[221] Fix | Delete
$currency_symbols = Ninja_Forms::config( 'CurrencySymbol' );
[222] Fix | Delete
$settings[ 'currency_symbol' ] = ( isset( $currency_symbols[ $currency ] ) ) ? $currency_symbols[ $currency ] : '';
[223] Fix | Delete
}
[224] Fix | Delete
[225] Fix | Delete
if(isset($settings['builder_dev_mode'])){
[226] Fix | Delete
$builder_dev_mode = sanitize_text_field( $settings['builder_dev_mode'] );
[227] Fix | Delete
$has_builder_dev_mode_changed = ($builder_dev_mode !== Ninja_Forms()->get_setting('builder_dev_mode'));
[228] Fix | Delete
if($builder_dev_mode && $has_builder_dev_mode_changed){
[229] Fix | Delete
Ninja_Forms()->dispatcher()->send( 'builder_dev_mode', $builder_dev_mode );
[230] Fix | Delete
}
[231] Fix | Delete
}
[232] Fix | Delete
[233] Fix | Delete
if(isset($settings['opinionated_styles'])){
[234] Fix | Delete
if('' == $settings['opinionated_styles']){
[235] Fix | Delete
Ninja_Forms()->dispatcher()->send( 'opinionated_styles_disabled', 'disabled' );
[236] Fix | Delete
}
[237] Fix | Delete
}
[238] Fix | Delete
[239] Fix | Delete
foreach( $settings as $id => $value ){
[240] Fix | Delete
$value = sanitize_text_field( $value );
[241] Fix | Delete
$value = apply_filters( 'ninja_forms_update_setting_' . $id, $value );
[242] Fix | Delete
Ninja_Forms()->update_setting( $id, $value );
[243] Fix | Delete
do_action( 'ninja_forms_save_setting_' . $id, $value );
[244] Fix | Delete
}
[245] Fix | Delete
}
[246] Fix | Delete
[247] Fix | Delete
private function get_settings()
[248] Fix | Delete
{
[249] Fix | Delete
return apply_filters( 'ninja_forms_plugin_settings', array(
[250] Fix | Delete
'general' => Ninja_Forms()->config( 'PluginSettingsGeneral' ),
[251] Fix | Delete
'recaptcha' => Ninja_Forms()->config( 'PluginSettingsReCaptcha' ),
[252] Fix | Delete
'advanced' => Ninja_Forms()->config( 'PluginSettingsAdvanced' ),
[253] Fix | Delete
));
[254] Fix | Delete
}
[255] Fix | Delete
[256] Fix | Delete
private function prefix( $value ){
[257] Fix | Delete
return "{$this->_prefix}[$value]";
[258] Fix | Delete
}
[259] Fix | Delete
[260] Fix | Delete
} // End Class NF_Admin_Settings
[261] Fix | Delete
[262] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function