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/clone/wp-conte.../plugins/contact-.../includes
File: submission.php
}
[500] Fix | Delete
[501] Fix | Delete
// Hash created 30-60 minutes ago.
[502] Fix | Delete
$expected_2 = $this->create_posted_data_hash( $tick - 1 );
[503] Fix | Delete
[504] Fix | Delete
if ( hash_equals( $expected_2, $hash ) ) {
[505] Fix | Delete
return 2;
[506] Fix | Delete
}
[507] Fix | Delete
[508] Fix | Delete
return false;
[509] Fix | Delete
}
[510] Fix | Delete
[511] Fix | Delete
[512] Fix | Delete
/**
[513] Fix | Delete
* Retrieves the remote IP address of this submission.
[514] Fix | Delete
*/
[515] Fix | Delete
private function get_remote_ip_addr() {
[516] Fix | Delete
$ip_addr = '';
[517] Fix | Delete
[518] Fix | Delete
if ( isset( $_SERVER['REMOTE_ADDR'] )
[519] Fix | Delete
and WP_Http::is_ip_address( $_SERVER['REMOTE_ADDR'] ) ) {
[520] Fix | Delete
$ip_addr = $_SERVER['REMOTE_ADDR'];
[521] Fix | Delete
}
[522] Fix | Delete
[523] Fix | Delete
return apply_filters( 'wpcf7_remote_ip_addr', $ip_addr );
[524] Fix | Delete
}
[525] Fix | Delete
[526] Fix | Delete
[527] Fix | Delete
/**
[528] Fix | Delete
* Retrieves the request URL of this submission.
[529] Fix | Delete
*/
[530] Fix | Delete
private function get_request_url() {
[531] Fix | Delete
$home_url = untrailingslashit( home_url() );
[532] Fix | Delete
[533] Fix | Delete
if ( self::is_restful() ) {
[534] Fix | Delete
$referer = trim( $_SERVER['HTTP_REFERER'] ?? '' );
[535] Fix | Delete
[536] Fix | Delete
if ( $referer
[537] Fix | Delete
and 0 === strpos( $referer, $home_url ) ) {
[538] Fix | Delete
return sanitize_url( $referer );
[539] Fix | Delete
}
[540] Fix | Delete
}
[541] Fix | Delete
[542] Fix | Delete
$url = preg_replace( '%(?<!:|/)/.*$%', '', $home_url )
[543] Fix | Delete
. wpcf7_get_request_uri();
[544] Fix | Delete
[545] Fix | Delete
return $url;
[546] Fix | Delete
}
[547] Fix | Delete
[548] Fix | Delete
[549] Fix | Delete
/**
[550] Fix | Delete
* Runs user input validation.
[551] Fix | Delete
*
[552] Fix | Delete
* @return bool True if no invalid field is found.
[553] Fix | Delete
*/
[554] Fix | Delete
private function validate() {
[555] Fix | Delete
if ( $this->invalid_fields ) {
[556] Fix | Delete
return false;
[557] Fix | Delete
}
[558] Fix | Delete
[559] Fix | Delete
$result = new WPCF7_Validation();
[560] Fix | Delete
[561] Fix | Delete
$this->contact_form->validate_schema(
[562] Fix | Delete
array(
[563] Fix | Delete
'text' => true,
[564] Fix | Delete
'file' => false,
[565] Fix | Delete
'field' => array(),
[566] Fix | Delete
),
[567] Fix | Delete
$result
[568] Fix | Delete
);
[569] Fix | Delete
[570] Fix | Delete
$tags = $this->contact_form->scan_form_tags( array(
[571] Fix | Delete
'feature' => '! file-uploading',
[572] Fix | Delete
) );
[573] Fix | Delete
[574] Fix | Delete
foreach ( $tags as $tag ) {
[575] Fix | Delete
$type = $tag->type;
[576] Fix | Delete
$result = apply_filters( "wpcf7_validate_{$type}", $result, $tag );
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
$result = apply_filters( 'wpcf7_validate', $result, $tags );
[580] Fix | Delete
[581] Fix | Delete
$this->invalid_fields = $result->get_invalid_fields();
[582] Fix | Delete
[583] Fix | Delete
return $result->is_valid();
[584] Fix | Delete
}
[585] Fix | Delete
[586] Fix | Delete
[587] Fix | Delete
/**
[588] Fix | Delete
* Returns true if user consent is obtained.
[589] Fix | Delete
*/
[590] Fix | Delete
private function accepted() {
[591] Fix | Delete
return apply_filters( 'wpcf7_acceptance', true, $this );
[592] Fix | Delete
}
[593] Fix | Delete
[594] Fix | Delete
[595] Fix | Delete
/**
[596] Fix | Delete
* Adds user consent data to this submission.
[597] Fix | Delete
*
[598] Fix | Delete
* @param string $name Field name.
[599] Fix | Delete
* @param string $conditions Conditions of consent.
[600] Fix | Delete
*/
[601] Fix | Delete
public function add_consent( $name, $conditions ) {
[602] Fix | Delete
$this->consent[$name] = $conditions;
[603] Fix | Delete
return true;
[604] Fix | Delete
}
[605] Fix | Delete
[606] Fix | Delete
[607] Fix | Delete
/**
[608] Fix | Delete
* Collects user consent data.
[609] Fix | Delete
*
[610] Fix | Delete
* @return array User consent data.
[611] Fix | Delete
*/
[612] Fix | Delete
public function collect_consent() {
[613] Fix | Delete
return (array) $this->consent;
[614] Fix | Delete
}
[615] Fix | Delete
[616] Fix | Delete
[617] Fix | Delete
/**
[618] Fix | Delete
* Executes spam protections.
[619] Fix | Delete
*
[620] Fix | Delete
* @return bool True if spam captured.
[621] Fix | Delete
*/
[622] Fix | Delete
private function spam() {
[623] Fix | Delete
$spam = false;
[624] Fix | Delete
[625] Fix | Delete
$skip_spam_check = apply_filters( 'wpcf7_skip_spam_check',
[626] Fix | Delete
$this->skip_spam_check,
[627] Fix | Delete
$this
[628] Fix | Delete
);
[629] Fix | Delete
[630] Fix | Delete
if ( $skip_spam_check ) {
[631] Fix | Delete
return $spam;
[632] Fix | Delete
}
[633] Fix | Delete
[634] Fix | Delete
if ( $this->contact_form->is_true( 'subscribers_only' )
[635] Fix | Delete
and current_user_can( 'wpcf7_submit', $this->contact_form->id() ) ) {
[636] Fix | Delete
return $spam;
[637] Fix | Delete
}
[638] Fix | Delete
[639] Fix | Delete
$user_agent = (string) $this->get_meta( 'user_agent' );
[640] Fix | Delete
[641] Fix | Delete
if ( strlen( $user_agent ) < 2 ) {
[642] Fix | Delete
$spam = true;
[643] Fix | Delete
[644] Fix | Delete
$this->add_spam_log( array(
[645] Fix | Delete
'agent' => 'wpcf7',
[646] Fix | Delete
'reason' => __( "User-Agent string is unnaturally short.", 'contact-form-7' ),
[647] Fix | Delete
) );
[648] Fix | Delete
}
[649] Fix | Delete
[650] Fix | Delete
if ( ! $this->verify_nonce() ) {
[651] Fix | Delete
$spam = true;
[652] Fix | Delete
[653] Fix | Delete
$this->add_spam_log( array(
[654] Fix | Delete
'agent' => 'wpcf7',
[655] Fix | Delete
'reason' => __( "Submitted nonce is invalid.", 'contact-form-7' ),
[656] Fix | Delete
) );
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
return apply_filters( 'wpcf7_spam', $spam, $this );
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
[663] Fix | Delete
/**
[664] Fix | Delete
* Adds a spam log.
[665] Fix | Delete
*
[666] Fix | Delete
* @link https://contactform7.com/2019/05/31/why-is-this-message-marked-spam/
[667] Fix | Delete
*/
[668] Fix | Delete
public function add_spam_log( $data = '' ) {
[669] Fix | Delete
$data = wp_parse_args( $data, array(
[670] Fix | Delete
'agent' => '',
[671] Fix | Delete
'reason' => '',
[672] Fix | Delete
) );
[673] Fix | Delete
[674] Fix | Delete
$this->spam_log[] = $data;
[675] Fix | Delete
}
[676] Fix | Delete
[677] Fix | Delete
[678] Fix | Delete
/**
[679] Fix | Delete
* Retrieves the spam logging data.
[680] Fix | Delete
*
[681] Fix | Delete
* @return array Spam logging data.
[682] Fix | Delete
*/
[683] Fix | Delete
public function get_spam_log() {
[684] Fix | Delete
return $this->spam_log;
[685] Fix | Delete
}
[686] Fix | Delete
[687] Fix | Delete
[688] Fix | Delete
/**
[689] Fix | Delete
* Verifies that a correct security nonce was used.
[690] Fix | Delete
*/
[691] Fix | Delete
private function verify_nonce() {
[692] Fix | Delete
if ( ! $this->contact_form->nonce_is_active() or ! is_user_logged_in() ) {
[693] Fix | Delete
return true;
[694] Fix | Delete
}
[695] Fix | Delete
[696] Fix | Delete
$nonce = $_POST['_wpnonce'] ?? '';
[697] Fix | Delete
[698] Fix | Delete
return wpcf7_verify_nonce( $nonce );
[699] Fix | Delete
}
[700] Fix | Delete
[701] Fix | Delete
[702] Fix | Delete
/**
[703] Fix | Delete
* Function called just before sending email.
[704] Fix | Delete
*/
[705] Fix | Delete
private function before_send_mail() {
[706] Fix | Delete
$abort = false;
[707] Fix | Delete
[708] Fix | Delete
do_action_ref_array( 'wpcf7_before_send_mail', array(
[709] Fix | Delete
$this->contact_form,
[710] Fix | Delete
&$abort,
[711] Fix | Delete
$this,
[712] Fix | Delete
) );
[713] Fix | Delete
[714] Fix | Delete
return ! $abort;
[715] Fix | Delete
}
[716] Fix | Delete
[717] Fix | Delete
[718] Fix | Delete
/**
[719] Fix | Delete
* Sends emails based on user input values and contact form email templates.
[720] Fix | Delete
*/
[721] Fix | Delete
private function mail() {
[722] Fix | Delete
$contact_form = $this->contact_form;
[723] Fix | Delete
[724] Fix | Delete
$skip_mail = apply_filters( 'wpcf7_skip_mail',
[725] Fix | Delete
$this->skip_mail, $contact_form
[726] Fix | Delete
);
[727] Fix | Delete
[728] Fix | Delete
if ( $skip_mail ) {
[729] Fix | Delete
return true;
[730] Fix | Delete
}
[731] Fix | Delete
[732] Fix | Delete
$result = WPCF7_Mail::send( $contact_form->prop( 'mail' ), 'mail' );
[733] Fix | Delete
[734] Fix | Delete
if ( $result ) {
[735] Fix | Delete
$additional_mail = array();
[736] Fix | Delete
[737] Fix | Delete
if ( $mail_2 = $contact_form->prop( 'mail_2' )
[738] Fix | Delete
and $mail_2['active'] ) {
[739] Fix | Delete
$additional_mail['mail_2'] = $mail_2;
[740] Fix | Delete
}
[741] Fix | Delete
[742] Fix | Delete
$additional_mail = apply_filters( 'wpcf7_additional_mail',
[743] Fix | Delete
$additional_mail, $contact_form
[744] Fix | Delete
);
[745] Fix | Delete
[746] Fix | Delete
foreach ( $additional_mail as $name => $template ) {
[747] Fix | Delete
WPCF7_Mail::send( $template, $name );
[748] Fix | Delete
}
[749] Fix | Delete
[750] Fix | Delete
return true;
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
return false;
[754] Fix | Delete
}
[755] Fix | Delete
[756] Fix | Delete
[757] Fix | Delete
/**
[758] Fix | Delete
* Retrieves files uploaded through this submission.
[759] Fix | Delete
*/
[760] Fix | Delete
public function uploaded_files() {
[761] Fix | Delete
return $this->uploaded_files;
[762] Fix | Delete
}
[763] Fix | Delete
[764] Fix | Delete
[765] Fix | Delete
/**
[766] Fix | Delete
* Adds a file to the uploaded files array.
[767] Fix | Delete
*
[768] Fix | Delete
* @param string $name Field name.
[769] Fix | Delete
* @param string|array $file_path File path or array of file paths.
[770] Fix | Delete
*/
[771] Fix | Delete
private function add_uploaded_file( $name, $file_path ) {
[772] Fix | Delete
if ( ! wpcf7_is_name( $name ) ) {
[773] Fix | Delete
return false;
[774] Fix | Delete
}
[775] Fix | Delete
[776] Fix | Delete
$paths = (array) $file_path;
[777] Fix | Delete
$uploaded_files = array();
[778] Fix | Delete
$hash_strings = array();
[779] Fix | Delete
[780] Fix | Delete
foreach ( $paths as $path ) {
[781] Fix | Delete
if ( @is_file( $path ) and @is_readable( $path ) ) {
[782] Fix | Delete
$uploaded_files[] = $path;
[783] Fix | Delete
$hash_strings[] = md5_file( $path );
[784] Fix | Delete
}
[785] Fix | Delete
}
[786] Fix | Delete
[787] Fix | Delete
$this->uploaded_files[$name] = $uploaded_files;
[788] Fix | Delete
[789] Fix | Delete
if ( empty( $this->posted_data[$name] ) ) {
[790] Fix | Delete
$this->posted_data[$name] = implode( ' ', $hash_strings );
[791] Fix | Delete
}
[792] Fix | Delete
}
[793] Fix | Delete
[794] Fix | Delete
[795] Fix | Delete
/**
[796] Fix | Delete
* Removes uploaded files.
[797] Fix | Delete
*/
[798] Fix | Delete
private function remove_uploaded_files() {
[799] Fix | Delete
foreach ( (array) $this->uploaded_files as $file_path ) {
[800] Fix | Delete
$paths = (array) $file_path;
[801] Fix | Delete
[802] Fix | Delete
foreach ( $paths as $path ) {
[803] Fix | Delete
wpcf7_rmdir_p( $path );
[804] Fix | Delete
[805] Fix | Delete
if ( $dir = dirname( $path )
[806] Fix | Delete
and false !== ( $files = scandir( $dir ) )
[807] Fix | Delete
and ! array_diff( $files, array( '.', '..' ) ) ) {
[808] Fix | Delete
// remove parent dir if it's empty.
[809] Fix | Delete
rmdir( $dir );
[810] Fix | Delete
}
[811] Fix | Delete
}
[812] Fix | Delete
}
[813] Fix | Delete
}
[814] Fix | Delete
[815] Fix | Delete
[816] Fix | Delete
/**
[817] Fix | Delete
* Moves uploaded files to the tmp directory and validates them.
[818] Fix | Delete
*
[819] Fix | Delete
* @return bool True if no invalid file is found.
[820] Fix | Delete
*/
[821] Fix | Delete
private function unship_uploaded_files() {
[822] Fix | Delete
$result = new WPCF7_Validation();
[823] Fix | Delete
[824] Fix | Delete
$tags = $this->contact_form->scan_form_tags( array(
[825] Fix | Delete
'feature' => 'file-uploading',
[826] Fix | Delete
) );
[827] Fix | Delete
[828] Fix | Delete
foreach ( $tags as $tag ) {
[829] Fix | Delete
if ( empty( $_FILES[$tag->name] ) ) {
[830] Fix | Delete
continue;
[831] Fix | Delete
}
[832] Fix | Delete
[833] Fix | Delete
$file = $_FILES[$tag->name];
[834] Fix | Delete
[835] Fix | Delete
$options = array(
[836] Fix | Delete
'tag' => $tag,
[837] Fix | Delete
'name' => $tag->name,
[838] Fix | Delete
'required' => $tag->is_required(),
[839] Fix | Delete
'filetypes' => $tag->get_option( 'filetypes' ),
[840] Fix | Delete
'limit' => $tag->get_limit_option(),
[841] Fix | Delete
'schema' => $this->contact_form->get_schema(),
[842] Fix | Delete
);
[843] Fix | Delete
[844] Fix | Delete
$new_files = wpcf7_unship_uploaded_file( $file, $options );
[845] Fix | Delete
[846] Fix | Delete
if ( is_wp_error( $new_files ) ) {
[847] Fix | Delete
$result->invalidate( $tag, $new_files );
[848] Fix | Delete
} else {
[849] Fix | Delete
$this->add_uploaded_file( $tag->name, $new_files );
[850] Fix | Delete
}
[851] Fix | Delete
[852] Fix | Delete
$result = apply_filters(
[853] Fix | Delete
"wpcf7_validate_{$tag->type}",
[854] Fix | Delete
$result, $tag,
[855] Fix | Delete
array(
[856] Fix | Delete
'uploaded_files' => $new_files,
[857] Fix | Delete
)
[858] Fix | Delete
);
[859] Fix | Delete
}
[860] Fix | Delete
[861] Fix | Delete
$this->invalid_fields = $result->get_invalid_fields();
[862] Fix | Delete
[863] Fix | Delete
return $result->is_valid();
[864] Fix | Delete
}
[865] Fix | Delete
[866] Fix | Delete
[867] Fix | Delete
/**
[868] Fix | Delete
* Adds extra email attachment files that are independent from form fields.
[869] Fix | Delete
*
[870] Fix | Delete
* @param string|array $file_path A file path or an array of file paths.
[871] Fix | Delete
* @param string $template Optional. The name of the template to which
[872] Fix | Delete
* the files are attached.
[873] Fix | Delete
* @return bool True if it succeeds to attach a file at least,
[874] Fix | Delete
* or false otherwise.
[875] Fix | Delete
*/
[876] Fix | Delete
public function add_extra_attachments( $file_path, $template = 'mail' ) {
[877] Fix | Delete
if ( ! did_action( 'wpcf7_before_send_mail' ) ) {
[878] Fix | Delete
return false;
[879] Fix | Delete
}
[880] Fix | Delete
[881] Fix | Delete
$extra_attachments = array();
[882] Fix | Delete
[883] Fix | Delete
foreach ( (array) $file_path as $path ) {
[884] Fix | Delete
$path = path_join( WP_CONTENT_DIR, $path );
[885] Fix | Delete
[886] Fix | Delete
if ( file_exists( $path ) ) {
[887] Fix | Delete
$extra_attachments[] = $path;
[888] Fix | Delete
}
[889] Fix | Delete
}
[890] Fix | Delete
[891] Fix | Delete
if ( empty( $extra_attachments ) ) {
[892] Fix | Delete
return false;
[893] Fix | Delete
}
[894] Fix | Delete
[895] Fix | Delete
if ( ! isset( $this->extra_attachments[$template] ) ) {
[896] Fix | Delete
$this->extra_attachments[$template] = array();
[897] Fix | Delete
}
[898] Fix | Delete
[899] Fix | Delete
$this->extra_attachments[$template] = array_merge(
[900] Fix | Delete
$this->extra_attachments[$template],
[901] Fix | Delete
$extra_attachments
[902] Fix | Delete
);
[903] Fix | Delete
[904] Fix | Delete
return true;
[905] Fix | Delete
}
[906] Fix | Delete
[907] Fix | Delete
[908] Fix | Delete
/**
[909] Fix | Delete
* Returns extra email attachment files.
[910] Fix | Delete
*
[911] Fix | Delete
* @param string $template An email template name.
[912] Fix | Delete
* @return array Array of file paths.
[913] Fix | Delete
*/
[914] Fix | Delete
public function extra_attachments( $template ) {
[915] Fix | Delete
if ( isset( $this->extra_attachments[$template] ) ) {
[916] Fix | Delete
return (array) $this->extra_attachments[$template];
[917] Fix | Delete
}
[918] Fix | Delete
[919] Fix | Delete
return array();
[920] Fix | Delete
}
[921] Fix | Delete
[922] Fix | Delete
}
[923] Fix | Delete
[924] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function