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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../includes/fields
File: class-select.php
$field = $form_data['fields'][ $field_id ];
[500] Fix | Delete
[501] Fix | Delete
// Skip validation if field is dynamic and choices are empty.
[502] Fix | Delete
if ( $this->is_dynamic_choices_empty( $field, $form_data ) ) {
[503] Fix | Delete
return;
[504] Fix | Delete
}
[505] Fix | Delete
[506] Fix | Delete
parent::validate( $field_id, $field_submit, $form_data );
[507] Fix | Delete
}
[508] Fix | Delete
[509] Fix | Delete
/**
[510] Fix | Delete
* Format and sanitize field.
[511] Fix | Delete
*
[512] Fix | Delete
* @since 1.0.2
[513] Fix | Delete
* @since 1.6.1 Added a support for multiple values.
[514] Fix | Delete
*
[515] Fix | Delete
* @param int $field_id Field ID.
[516] Fix | Delete
* @param string|array $field_submit Submitted field value (selected option).
[517] Fix | Delete
* @param array $form_data Form data and settings.
[518] Fix | Delete
*/
[519] Fix | Delete
public function format( $field_id, $field_submit, $form_data ) {
[520] Fix | Delete
[521] Fix | Delete
$field = $form_data['fields'][ $field_id ];
[522] Fix | Delete
$dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
[523] Fix | Delete
$multiple = ! empty( $field['multiple'] );
[524] Fix | Delete
$name = sanitize_text_field( $field['label'] );
[525] Fix | Delete
$value = [];
[526] Fix | Delete
[527] Fix | Delete
// Convert submitted field value to array.
[528] Fix | Delete
if ( ! is_array( $field_submit ) ) {
[529] Fix | Delete
$field_submit = [ $field_submit ];
[530] Fix | Delete
}
[531] Fix | Delete
[532] Fix | Delete
$value_raw = wpforms_sanitize_array_combine( $field_submit );
[533] Fix | Delete
[534] Fix | Delete
$data = [
[535] Fix | Delete
'name' => $name,
[536] Fix | Delete
'value' => '',
[537] Fix | Delete
'value_raw' => $value_raw,
[538] Fix | Delete
'id' => wpforms_validate_field_id( $field_id ),
[539] Fix | Delete
'type' => $this->type,
[540] Fix | Delete
];
[541] Fix | Delete
[542] Fix | Delete
if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) {
[543] Fix | Delete
[544] Fix | Delete
// Dynamic population is enabled using post type (like for a `Checkboxes` field).
[545] Fix | Delete
$value_raw = implode( ',', array_map( 'absint', $field_submit ) );
[546] Fix | Delete
$data['value_raw'] = $value_raw;
[547] Fix | Delete
$data['dynamic'] = 'post_type';
[548] Fix | Delete
$data['dynamic_items'] = $value_raw;
[549] Fix | Delete
$data['dynamic_post_type'] = $field['dynamic_post_type'];
[550] Fix | Delete
$posts = [];
[551] Fix | Delete
[552] Fix | Delete
foreach ( $field_submit as $id ) {
[553] Fix | Delete
$post = get_post( $id );
[554] Fix | Delete
[555] Fix | Delete
if ( ! is_wp_error( $post ) && ! empty( $post ) && $data['dynamic_post_type'] === $post->post_type ) {
[556] Fix | Delete
$posts[] = esc_html( wpforms_get_post_title( $post ) );
[557] Fix | Delete
}
[558] Fix | Delete
}
[559] Fix | Delete
[560] Fix | Delete
$data['value'] = ! empty( $posts ) ? wpforms_sanitize_array_combine( $posts ) : '';
[561] Fix | Delete
[562] Fix | Delete
} elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) {
[563] Fix | Delete
[564] Fix | Delete
// Dynamic population is enabled using taxonomy (like for a `Checkboxes` field).
[565] Fix | Delete
$value_raw = implode( ',', array_map( 'absint', $field_submit ) );
[566] Fix | Delete
$data['value_raw'] = $value_raw;
[567] Fix | Delete
$data['dynamic'] = 'taxonomy';
[568] Fix | Delete
$data['dynamic_items'] = $value_raw;
[569] Fix | Delete
$data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
[570] Fix | Delete
$terms = [];
[571] Fix | Delete
[572] Fix | Delete
foreach ( $field_submit as $id ) {
[573] Fix | Delete
$term = get_term( $id, $field['dynamic_taxonomy'] );
[574] Fix | Delete
[575] Fix | Delete
if ( ! is_wp_error( $term ) && ! empty( $term ) ) {
[576] Fix | Delete
$terms[] = esc_html( wpforms_get_term_name( $term ) );
[577] Fix | Delete
}
[578] Fix | Delete
}
[579] Fix | Delete
[580] Fix | Delete
$data['value'] = ! empty( $terms ) ? wpforms_sanitize_array_combine( $terms ) : '';
[581] Fix | Delete
[582] Fix | Delete
} else {
[583] Fix | Delete
[584] Fix | Delete
// Normal processing, dynamic population is off.
[585] Fix | Delete
[586] Fix | Delete
// If show_values is true, that means values posted are the raw values
[587] Fix | Delete
// and not the labels. So we need to get the label values.
[588] Fix | Delete
if ( ! empty( $field['show_values'] ) && (int) $field['show_values'] === 1 ) {
[589] Fix | Delete
[590] Fix | Delete
foreach ( $field_submit as $item ) {
[591] Fix | Delete
foreach ( $field['choices'] as $choice ) {
[592] Fix | Delete
if ( $item === $choice['value'] ) {
[593] Fix | Delete
$value[] = $choice['label'];
[594] Fix | Delete
[595] Fix | Delete
break;
[596] Fix | Delete
}
[597] Fix | Delete
}
[598] Fix | Delete
}
[599] Fix | Delete
[600] Fix | Delete
$data['value'] = ! empty( $value ) ? wpforms_sanitize_array_combine( $value ) : '';
[601] Fix | Delete
[602] Fix | Delete
} else {
[603] Fix | Delete
$data['value'] = $value_raw;
[604] Fix | Delete
}
[605] Fix | Delete
}
[606] Fix | Delete
[607] Fix | Delete
// Backward compatibility: for single dropdown save a string, for multiple - array.
[608] Fix | Delete
if ( ! $multiple && is_array( $data ) && ( 1 === count( $data ) ) ) {
[609] Fix | Delete
$data = reset( $data );
[610] Fix | Delete
}
[611] Fix | Delete
[612] Fix | Delete
// Push field details to be saved.
[613] Fix | Delete
wpforms()->get( 'process' )->fields[ $field_id ] = $data;
[614] Fix | Delete
}
[615] Fix | Delete
[616] Fix | Delete
/**
[617] Fix | Delete
* Form frontend CSS enqueues.
[618] Fix | Delete
*
[619] Fix | Delete
* @since 1.6.1
[620] Fix | Delete
*
[621] Fix | Delete
* @param array $forms Forms on the current page.
[622] Fix | Delete
*/
[623] Fix | Delete
public function enqueue_frontend_css( $forms ) {
[624] Fix | Delete
[625] Fix | Delete
$has_modern_select = false;
[626] Fix | Delete
[627] Fix | Delete
foreach ( $forms as $form ) {
[628] Fix | Delete
if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) {
[629] Fix | Delete
$has_modern_select = true;
[630] Fix | Delete
[631] Fix | Delete
break;
[632] Fix | Delete
}
[633] Fix | Delete
}
[634] Fix | Delete
[635] Fix | Delete
if ( $has_modern_select || wpforms()->get( 'frontend' )->assets_global() ) {
[636] Fix | Delete
$min = wpforms_get_min_suffix();
[637] Fix | Delete
[638] Fix | Delete
wp_enqueue_style(
[639] Fix | Delete
'wpforms-choicesjs',
[640] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/css/choices{$min}.css",
[641] Fix | Delete
[],
[642] Fix | Delete
self::CHOICES_VERSION
[643] Fix | Delete
);
[644] Fix | Delete
}
[645] Fix | Delete
}
[646] Fix | Delete
[647] Fix | Delete
/**
[648] Fix | Delete
* Form frontend JS enqueues.
[649] Fix | Delete
*
[650] Fix | Delete
* @since 1.6.1
[651] Fix | Delete
*
[652] Fix | Delete
* @param array $forms Forms on the current page.
[653] Fix | Delete
*/
[654] Fix | Delete
public function enqueue_frontend_js( $forms ) {
[655] Fix | Delete
[656] Fix | Delete
$has_modern_select = false;
[657] Fix | Delete
[658] Fix | Delete
foreach ( $forms as $form ) {
[659] Fix | Delete
if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) {
[660] Fix | Delete
$has_modern_select = true;
[661] Fix | Delete
[662] Fix | Delete
break;
[663] Fix | Delete
}
[664] Fix | Delete
}
[665] Fix | Delete
[666] Fix | Delete
if ( $has_modern_select || wpforms()->get( 'frontend' )->assets_global() ) {
[667] Fix | Delete
$this->enqueue_choicesjs_once( $forms );
[668] Fix | Delete
}
[669] Fix | Delete
}
[670] Fix | Delete
[671] Fix | Delete
/**
[672] Fix | Delete
* Load WPForms Gutenberg block scripts.
[673] Fix | Delete
*
[674] Fix | Delete
* @since 1.8.1
[675] Fix | Delete
*/
[676] Fix | Delete
public function enqueue_block_editor_assets() {
[677] Fix | Delete
[678] Fix | Delete
$min = wpforms_get_min_suffix();
[679] Fix | Delete
[680] Fix | Delete
wp_enqueue_style(
[681] Fix | Delete
'wpforms-choicesjs',
[682] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/css/choices{$min}.css",
[683] Fix | Delete
[],
[684] Fix | Delete
self::CHOICES_VERSION
[685] Fix | Delete
);
[686] Fix | Delete
[687] Fix | Delete
$this->enqueue_choicesjs_once( [] );
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
/**
[691] Fix | Delete
* Whether the provided form has a dropdown field with a specified style.
[692] Fix | Delete
*
[693] Fix | Delete
* @since 1.6.1
[694] Fix | Delete
*
[695] Fix | Delete
* @param array $form Form data.
[696] Fix | Delete
* @param string $style Desired field style.
[697] Fix | Delete
*
[698] Fix | Delete
* @return bool
[699] Fix | Delete
*/
[700] Fix | Delete
protected function is_field_style( $form, $style ) {
[701] Fix | Delete
[702] Fix | Delete
$is_field_style = false;
[703] Fix | Delete
[704] Fix | Delete
if ( empty( $form['fields'] ) ) {
[705] Fix | Delete
[706] Fix | Delete
return $is_field_style;
[707] Fix | Delete
}
[708] Fix | Delete
[709] Fix | Delete
foreach ( (array) $form['fields'] as $field ) {
[710] Fix | Delete
[711] Fix | Delete
if (
[712] Fix | Delete
! empty( $field['type'] ) &&
[713] Fix | Delete
$field['type'] === $this->type &&
[714] Fix | Delete
! empty( $field['style'] ) &&
[715] Fix | Delete
sanitize_key( $style ) === $field['style']
[716] Fix | Delete
) {
[717] Fix | Delete
$is_field_style = true;
[718] Fix | Delete
break;
[719] Fix | Delete
}
[720] Fix | Delete
}
[721] Fix | Delete
[722] Fix | Delete
return $is_field_style;
[723] Fix | Delete
}
[724] Fix | Delete
[725] Fix | Delete
/**
[726] Fix | Delete
* Get field name for an ajax error message.
[727] Fix | Delete
*
[728] Fix | Delete
* @since 1.6.3
[729] Fix | Delete
*
[730] Fix | Delete
* @param string|mixed $name Field name for error triggered.
[731] Fix | Delete
* @param array $field Field settings.
[732] Fix | Delete
* @param array $props List of properties.
[733] Fix | Delete
* @param string|string[] $error Error message.
[734] Fix | Delete
*
[735] Fix | Delete
* @return string
[736] Fix | Delete
* @noinspection PhpMissingReturnTypeInspection
[737] Fix | Delete
* @noinspection ReturnTypeCanBeDeclaredInspection
[738] Fix | Delete
*/
[739] Fix | Delete
public function ajax_error_field_name( $name, $field, $props, $error ) {
[740] Fix | Delete
[741] Fix | Delete
$name = (string) $name;
[742] Fix | Delete
[743] Fix | Delete
if ( ! isset( $field['type'] ) || 'select' !== $field['type'] ) {
[744] Fix | Delete
return $name;
[745] Fix | Delete
}
[746] Fix | Delete
[747] Fix | Delete
if ( ! empty( $field['multiple'] ) ) {
[748] Fix | Delete
$input = isset( $props['inputs'] ) ? end( $props['inputs'] ) : [];
[749] Fix | Delete
[750] Fix | Delete
return isset( $input['attr']['name'] ) ? $input['attr']['name'] . '[]' : '';
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
return $name;
[754] Fix | Delete
}
[755] Fix | Delete
}
[756] Fix | Delete
[757] Fix | Delete
new WPForms_Field_Select();
[758] Fix | Delete
[759] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function