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
File: class-form.php
foreach ( $notices as $notice ) {
[1000] Fix | Delete
// Skip the duplicate notice if it already exists.
[1001] Fix | Delete
if ( ! empty( $notice['code'] ) && in_array( $notice['code'], $code_fields, true ) ) {
[1002] Fix | Delete
continue;
[1003] Fix | Delete
}
[1004] Fix | Delete
[1005] Fix | Delete
$next_field_id = ++$current_field_id;
[1006] Fix | Delete
$warning[ $next_field_id ] = [
[1007] Fix | Delete
'id' => $next_field_id,
[1008] Fix | Delete
'type' => 'internal-information',
[1009] Fix | Delete
'code' => ! empty( $notice['code'] ) ? esc_attr( $notice['code'] ) : '',
[1010] Fix | Delete
'description' => '',
[1011] Fix | Delete
];
[1012] Fix | Delete
[1013] Fix | Delete
$warning[ $next_field_id ]['description'] .= ! empty( $notice['title'] ) ? '<strong>' . esc_html( $notice['title'] ) . '</strong>' : '';
[1014] Fix | Delete
$warning[ $next_field_id ]['description'] .= ! empty( $notice['message'] ) ? '<p>' . wp_kses_post( $notice['message'] ) . '</p>' : '';
[1015] Fix | Delete
[1016] Fix | Delete
// Do not add notice with empty body.
[1017] Fix | Delete
if ( empty( $warning[ $next_field_id ]['description'] ) ) {
[1018] Fix | Delete
unset( $warning[ $next_field_id ] );
[1019] Fix | Delete
--$next_field_id; // Reset next field ID to the previous value.
[1020] Fix | Delete
}
[1021] Fix | Delete
}
[1022] Fix | Delete
[1023] Fix | Delete
if ( ! empty( $warning ) ) {
[1024] Fix | Delete
$new_form_data['fields'] = $warning + $new_form_data['fields'];
[1025] Fix | Delete
[1026] Fix | Delete
// Update next field ID to be used for future created fields. Otherwise, IIF field would be overwritten.
[1027] Fix | Delete
$new_form_data['field_id'] = $next_field_id + 1;
[1028] Fix | Delete
}
[1029] Fix | Delete
[1030] Fix | Delete
return $new_form_data;
[1031] Fix | Delete
}
[1032] Fix | Delete
[1033] Fix | Delete
/**
[1034] Fix | Delete
* Add a notice about Zapier zaps disconnected after form being duplicated or converted to/from template.
[1035] Fix | Delete
*
[1036] Fix | Delete
* @WPFormsBackCompat Support Zapier v1.5.0 and earlier.
[1037] Fix | Delete
*
[1038] Fix | Delete
* @since 1.8.8
[1039] Fix | Delete
*
[1040] Fix | Delete
* @param array $notices Array of notices.
[1041] Fix | Delete
* @param array $new_form_data Form data.
[1042] Fix | Delete
* @param int $form_id Original form ID.
[1043] Fix | Delete
*
[1044] Fix | Delete
* @return array
[1045] Fix | Delete
*/
[1046] Fix | Delete
public function _zapier_disconnected_on_duplication( $notices, array $new_form_data, int $form_id ): array { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
[1047] Fix | Delete
[1048] Fix | Delete
// Check if original form had any Zaps connected.
[1049] Fix | Delete
$is_zapier_connected = get_post_meta( $form_id, 'wpforms_zapier', true );
[1050] Fix | Delete
[1051] Fix | Delete
if ( ! $is_zapier_connected ) {
[1052] Fix | Delete
return $notices;
[1053] Fix | Delete
}
[1054] Fix | Delete
[1055] Fix | Delete
$notices['zapier'] = [
[1056] Fix | Delete
'title' => esc_html__( 'Zaps Have Been Disabled', 'wpforms-lite' ),
[1057] Fix | Delete
'code' => 'disconnected_on_duplication',
[1058] Fix | Delete
'message' => sprintf( /* translators: %s - URL the to list of Zaps. */
[1059] Fix | Delete
__( 'Head over to the Zapier settings in the Marketing tab or visit your <a href="%s" target="_blank" rel="noopener noreferrer">Zapier account</a> to restore them.', 'wpforms-lite' ),
[1060] Fix | Delete
esc_url( 'https://zapier.com/app/zaps' )
[1061] Fix | Delete
),
[1062] Fix | Delete
];
[1063] Fix | Delete
[1064] Fix | Delete
return $notices;
[1065] Fix | Delete
}
[1066] Fix | Delete
[1067] Fix | Delete
/**
[1068] Fix | Delete
* Get the next available field ID and increment by one.
[1069] Fix | Delete
*
[1070] Fix | Delete
* @since 1.0.0
[1071] Fix | Delete
*
[1072] Fix | Delete
* @param string|int $form_id Form ID.
[1073] Fix | Delete
* @param array $args Additional arguments.
[1074] Fix | Delete
*
[1075] Fix | Delete
* @return mixed int or false
[1076] Fix | Delete
*/
[1077] Fix | Delete
public function next_field_id( $form_id, $args = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks
[1078] Fix | Delete
[1079] Fix | Delete
if ( empty( $form_id ) ) {
[1080] Fix | Delete
return false;
[1081] Fix | Delete
}
[1082] Fix | Delete
[1083] Fix | Delete
$defaults = [
[1084] Fix | Delete
'content_only' => true,
[1085] Fix | Delete
];
[1086] Fix | Delete
[1087] Fix | Delete
if ( isset( $args['cap'] ) ) {
[1088] Fix | Delete
$defaults['cap'] = $args['cap'];
[1089] Fix | Delete
}
[1090] Fix | Delete
[1091] Fix | Delete
$form = $this->get( $form_id, $defaults );
[1092] Fix | Delete
[1093] Fix | Delete
if ( empty( $form ) ) {
[1094] Fix | Delete
return false;
[1095] Fix | Delete
}
[1096] Fix | Delete
[1097] Fix | Delete
$field_id = 0;
[1098] Fix | Delete
$max_field_id = ! empty( $form['fields'] ) ? max( array_keys( $form['fields'] ) ) : 0;
[1099] Fix | Delete
[1100] Fix | Delete
// We pass the `field_id` after duplicating the Layout field that contains a bunch of fields.
[1101] Fix | Delete
// This is needed to avoid multiple AJAX calls after duplicating each field in the Layout.
[1102] Fix | Delete
if ( isset( $args['field_id'] ) ) {
[1103] Fix | Delete
$set_field_id = absint( $args['field_id'] ) - 1;
[1104] Fix | Delete
$field_id = $set_field_id > $max_field_id ? $set_field_id : $max_field_id + 1;
[1105] Fix | Delete
} elseif ( ! empty( $form['field_id'] ) ) {
[1106] Fix | Delete
$field_id = absint( $form['field_id'] );
[1107] Fix | Delete
$field_id = $max_field_id > $field_id ? $max_field_id + 1 : $field_id;
[1108] Fix | Delete
}
[1109] Fix | Delete
[1110] Fix | Delete
$form['field_id'] = $field_id + 1;
[1111] Fix | Delete
[1112] Fix | Delete
// Skip creating a revision for this action.
[1113] Fix | Delete
remove_action( 'post_updated', 'wp_save_post_revision' );
[1114] Fix | Delete
[1115] Fix | Delete
$this->update( $form_id, $form );
[1116] Fix | Delete
[1117] Fix | Delete
// Restore the initial revisions state.
[1118] Fix | Delete
add_action( 'post_updated', 'wp_save_post_revision', 10, 1 );
[1119] Fix | Delete
[1120] Fix | Delete
return $field_id;
[1121] Fix | Delete
}
[1122] Fix | Delete
[1123] Fix | Delete
/**
[1124] Fix | Delete
* Get private meta information for a form.
[1125] Fix | Delete
*
[1126] Fix | Delete
* @since 1.0.0
[1127] Fix | Delete
*
[1128] Fix | Delete
* @param string|int $form_id Form ID.
[1129] Fix | Delete
* @param string $field Field.
[1130] Fix | Delete
* @param array $args Additional arguments.
[1131] Fix | Delete
*
[1132] Fix | Delete
* @return false|array
[1133] Fix | Delete
*/
[1134] Fix | Delete
public function get_meta( $form_id, $field = '', $args = [] ) {
[1135] Fix | Delete
[1136] Fix | Delete
if ( empty( $form_id ) ) {
[1137] Fix | Delete
return false;
[1138] Fix | Delete
}
[1139] Fix | Delete
[1140] Fix | Delete
$defaults = [
[1141] Fix | Delete
'content_only' => true,
[1142] Fix | Delete
];
[1143] Fix | Delete
[1144] Fix | Delete
if ( isset( $args['cap'] ) ) {
[1145] Fix | Delete
$defaults['cap'] = $args['cap'];
[1146] Fix | Delete
}
[1147] Fix | Delete
[1148] Fix | Delete
$data = $this->get( $form_id, $defaults );
[1149] Fix | Delete
[1150] Fix | Delete
if ( ! isset( $data['meta'] ) ) {
[1151] Fix | Delete
return false;
[1152] Fix | Delete
}
[1153] Fix | Delete
[1154] Fix | Delete
if ( empty( $field ) ) {
[1155] Fix | Delete
return $data['meta'];
[1156] Fix | Delete
}
[1157] Fix | Delete
[1158] Fix | Delete
if ( isset( $data['meta'][ $field ] ) ) {
[1159] Fix | Delete
return $data['meta'][ $field ];
[1160] Fix | Delete
}
[1161] Fix | Delete
[1162] Fix | Delete
return false;
[1163] Fix | Delete
}
[1164] Fix | Delete
[1165] Fix | Delete
/**
[1166] Fix | Delete
* Update or add form meta information to a form.
[1167] Fix | Delete
*
[1168] Fix | Delete
* @since 1.4.0
[1169] Fix | Delete
*
[1170] Fix | Delete
* @param string|int $form_id Form ID.
[1171] Fix | Delete
* @param string $meta_key Meta key.
[1172] Fix | Delete
* @param mixed $meta_value Meta value.
[1173] Fix | Delete
* @param array $args Additional arguments.
[1174] Fix | Delete
*
[1175] Fix | Delete
* @return false|int|WP_Error
[1176] Fix | Delete
*/
[1177] Fix | Delete
public function update_meta( $form_id, $meta_key, $meta_value, $args = [] ) {
[1178] Fix | Delete
[1179] Fix | Delete
if ( empty( $form_id ) || empty( $meta_key ) ) {
[1180] Fix | Delete
return false;
[1181] Fix | Delete
}
[1182] Fix | Delete
[1183] Fix | Delete
// Add filter of the link rel attr to avoid JSON damage.
[1184] Fix | Delete
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
[1185] Fix | Delete
[1186] Fix | Delete
// This filter breaks forms if they contain HTML.
[1187] Fix | Delete
remove_filter( 'content_save_pre', 'balanceTags', 50 );
[1188] Fix | Delete
[1189] Fix | Delete
if ( ! isset( $args['cap'] ) ) {
[1190] Fix | Delete
$args['cap'] = 'edit_form_single';
[1191] Fix | Delete
}
[1192] Fix | Delete
[1193] Fix | Delete
$form = $this->get_single( absint( $form_id ), $args );
[1194] Fix | Delete
[1195] Fix | Delete
if ( empty( $form ) ) {
[1196] Fix | Delete
return false;
[1197] Fix | Delete
}
[1198] Fix | Delete
[1199] Fix | Delete
$data = wpforms_decode( $form->post_content );
[1200] Fix | Delete
$meta_key = wpforms_sanitize_key( $meta_key );
[1201] Fix | Delete
[1202] Fix | Delete
$data['meta'][ $meta_key ] = $meta_value;
[1203] Fix | Delete
[1204] Fix | Delete
$form = [
[1205] Fix | Delete
'ID' => $form_id,
[1206] Fix | Delete
'post_content' => wpforms_encode( $data ),
[1207] Fix | Delete
];
[1208] Fix | Delete
$form = apply_filters( 'wpforms_update_form_meta_args', $form, $data );
[1209] Fix | Delete
$form_id = wp_update_post( $form );
[1210] Fix | Delete
[1211] Fix | Delete
do_action( 'wpforms_update_form_meta', $form_id, $form, $meta_key, $meta_value );
[1212] Fix | Delete
[1213] Fix | Delete
return $form_id;
[1214] Fix | Delete
}
[1215] Fix | Delete
[1216] Fix | Delete
/**
[1217] Fix | Delete
* Delete form meta information from a form.
[1218] Fix | Delete
*
[1219] Fix | Delete
* @since 1.4.0
[1220] Fix | Delete
*
[1221] Fix | Delete
* @param string|int $form_id Form ID.
[1222] Fix | Delete
* @param string $meta_key Meta key.
[1223] Fix | Delete
* @param array $args Additional arguments.
[1224] Fix | Delete
*
[1225] Fix | Delete
* @return false|int|WP_Error
[1226] Fix | Delete
*/
[1227] Fix | Delete
public function delete_meta( $form_id, $meta_key, $args = [] ) {
[1228] Fix | Delete
[1229] Fix | Delete
if ( empty( $form_id ) || empty( $meta_key ) ) {
[1230] Fix | Delete
return false;
[1231] Fix | Delete
}
[1232] Fix | Delete
[1233] Fix | Delete
// Add filter of the link rel attr to avoid JSON damage.
[1234] Fix | Delete
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
[1235] Fix | Delete
[1236] Fix | Delete
// This filter breaks forms if they contain HTML.
[1237] Fix | Delete
remove_filter( 'content_save_pre', 'balanceTags', 50 );
[1238] Fix | Delete
[1239] Fix | Delete
if ( ! isset( $args['cap'] ) ) {
[1240] Fix | Delete
$args['cap'] = 'edit_form_single';
[1241] Fix | Delete
}
[1242] Fix | Delete
[1243] Fix | Delete
$form = $this->get_single( absint( $form_id ), $args );
[1244] Fix | Delete
[1245] Fix | Delete
if ( empty( $form ) ) {
[1246] Fix | Delete
return false;
[1247] Fix | Delete
}
[1248] Fix | Delete
[1249] Fix | Delete
$data = wpforms_decode( $form->post_content );
[1250] Fix | Delete
$meta_key = wpforms_sanitize_key( $meta_key );
[1251] Fix | Delete
[1252] Fix | Delete
unset( $data['meta'][ $meta_key ] );
[1253] Fix | Delete
[1254] Fix | Delete
$form = [
[1255] Fix | Delete
'ID' => $form_id,
[1256] Fix | Delete
'post_content' => wpforms_encode( $data ),
[1257] Fix | Delete
];
[1258] Fix | Delete
$form = apply_filters( 'wpforms_delete_form_meta_args', $form, $data );
[1259] Fix | Delete
$form_id = wp_update_post( $form );
[1260] Fix | Delete
[1261] Fix | Delete
do_action( 'wpforms_delete_form_meta', $form_id, $form, $meta_key );
[1262] Fix | Delete
[1263] Fix | Delete
return $form_id;
[1264] Fix | Delete
}
[1265] Fix | Delete
[1266] Fix | Delete
/**
[1267] Fix | Delete
* Get private meta information for a form field.
[1268] Fix | Delete
*
[1269] Fix | Delete
* @since 1.0.0
[1270] Fix | Delete
*
[1271] Fix | Delete
* @param string|int $form_id Form ID.
[1272] Fix | Delete
* @param string $field_id Field ID.
[1273] Fix | Delete
* @param array $args Additional arguments.
[1274] Fix | Delete
*
[1275] Fix | Delete
* @return array|false
[1276] Fix | Delete
*/
[1277] Fix | Delete
public function get_field( $form_id, $field_id = '', $args = [] ) {
[1278] Fix | Delete
[1279] Fix | Delete
if ( empty( $form_id ) ) {
[1280] Fix | Delete
return false;
[1281] Fix | Delete
}
[1282] Fix | Delete
[1283] Fix | Delete
$defaults = [
[1284] Fix | Delete
'content_only' => true,
[1285] Fix | Delete
];
[1286] Fix | Delete
[1287] Fix | Delete
if ( isset( $args['cap'] ) ) {
[1288] Fix | Delete
$defaults['cap'] = $args['cap'];
[1289] Fix | Delete
}
[1290] Fix | Delete
[1291] Fix | Delete
$data = $this->get( $form_id, $defaults );
[1292] Fix | Delete
[1293] Fix | Delete
return isset( $data['fields'][ $field_id ] ) ? $data['fields'][ $field_id ] : false;
[1294] Fix | Delete
}
[1295] Fix | Delete
[1296] Fix | Delete
/**
[1297] Fix | Delete
* Get private meta information for a form field.
[1298] Fix | Delete
*
[1299] Fix | Delete
* @since 1.0.0
[1300] Fix | Delete
*
[1301] Fix | Delete
* @param string|int $form_id Form ID.
[1302] Fix | Delete
* @param string $field_id Field ID.
[1303] Fix | Delete
* @param array $args Additional arguments.
[1304] Fix | Delete
*
[1305] Fix | Delete
* @return array|false
[1306] Fix | Delete
*/
[1307] Fix | Delete
public function get_field_meta( $form_id, $field_id = '', $args = [] ) {
[1308] Fix | Delete
[1309] Fix | Delete
$field = $this->get_field( $form_id, $field_id, $args );
[1310] Fix | Delete
[1311] Fix | Delete
if ( ! $field ) {
[1312] Fix | Delete
return false;
[1313] Fix | Delete
}
[1314] Fix | Delete
[1315] Fix | Delete
return isset( $field['meta'] ) ? $field['meta'] : false;
[1316] Fix | Delete
}
[1317] Fix | Delete
[1318] Fix | Delete
/**
[1319] Fix | Delete
* Checks if any forms are present on the site.
[1320] Fix | Delete
*
[1321] Fix | Delete
* @since 1.8.8
[1322] Fix | Delete
*
[1323] Fix | Delete
* @retun bool
[1324] Fix | Delete
*/
[1325] Fix | Delete
public function forms_exist(): bool {
[1326] Fix | Delete
[1327] Fix | Delete
return (bool) $this->get(
[1328] Fix | Delete
'',
[1329] Fix | Delete
[
[1330] Fix | Delete
'numberposts' => 1,
[1331] Fix | Delete
'fields' => 'ids',
[1332] Fix | Delete
'no_found_rows' => true,
[1333] Fix | Delete
'suppress_filters' => true,
[1334] Fix | Delete
'nopaging' => false,
[1335] Fix | Delete
'update_post_meta_cache' => false,
[1336] Fix | Delete
'update_post_term_cache' => false,
[1337] Fix | Delete
]
[1338] Fix | Delete
);
[1339] Fix | Delete
}
[1340] Fix | Delete
[1341] Fix | Delete
/**
[1342] Fix | Delete
* Get forms count per page.
[1343] Fix | Delete
*
[1344] Fix | Delete
* @since 1.8.8
[1345] Fix | Delete
*
[1346] Fix | Delete
* @return int
[1347] Fix | Delete
*/
[1348] Fix | Delete
public function get_count_per_page(): int {
[1349] Fix | Delete
[1350] Fix | Delete
// phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName
[1351] Fix | Delete
/**
[1352] Fix | Delete
* Give developers an ability to modify number of forms per page.
[1353] Fix | Delete
*
[1354] Fix | Delete
* @since 1.8.8
[1355] Fix | Delete
*
[1356] Fix | Delete
* @param array $count Forms count per page.
[1357] Fix | Delete
*/
[1358] Fix | Delete
return (int) apply_filters( 'wpforms_forms_per_page', 20 );
[1359] Fix | Delete
// phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName
[1360] Fix | Delete
}
[1361] Fix | Delete
}
[1362] Fix | Delete
[1363] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function