رفتن به مطلب

تغییر آدرس ایمیل فرم تماس


پست های پیشنهاد شده

دوستان چجوری میشه آدرس ایمیل دریافت کننده رو تغییر داد، اینجور که تو کد اومده انگار از ایمیل مدیر سایت استفاده میشه اما میخوام از ایمیلی به جز ایمیل مدیر سایت استفاده کنم، یعنی یه ایمیل دیگه براش تعریف بشه و محتویات برای اون ایمیل ارسال بشن


private function send_mail() {
$email_to = get_option('admin_email');
$email_subject = __('Contact Form Message from', 'dv').' '.get_bloginfo('name');
$email_message = __('Name:', 'dv').' '.$this->userinput['name']."\n\n".
__('Email:', 'dv').' '.$this->userinput['email']."\n\n".
__('Message:', 'dv').' '.$this->userinput['message'];
return wp_mail($email_to, $email_subject, $email_message);
}

لینک به ارسال

سلام.سوالتونو همین امروز پرسیدین کمی صبر داشته باشید.

جوابتون خیلی واضحه که ! توی خط دوم


get_option('admin_email')

رو با :


'example@mail.com'

تعویض کنید.

exampl@mail.com هم همون ایمیل هدفتونه

لینک به ارسال

ممنون

راستش دیگه اینو خودم امتحان کرده بودم ;)

دیدین یه سری خطا برای فرم ها تعریف میشه؟ مثلا با موفقیت ارسال شد یا.... وقتی ایمیل رو جایگزین

admin_email میکنم میگه مشکلی پیش آمده، از طریق دیگری در تماس باشید

اینم کل کدای مربوط به فرم


<?php
/*-----------------------------------------------------------------------------------*/
/* AJAX Contact Form - mts_contact_form()
/*-----------------------------------------------------------------------------------*/
class mtscontact {
public $errors = array();
public $userinput = array('name' => '', 'email' => '', 'message' => '');
public $success = false;

public function __construct() {
add_action('wp_ajax_mtscontact', array($this, 'ajax_mtscontact'));
add_action('wp_ajax_nopriv_mtscontact', array($this, 'ajax_mtscontact'));
add_action('init', array($this, 'init'));
add_action('wp_enqueue_scripts', array($this, 'register_scripts'));
}
public function ajax_mtscontact() {
if ($this->validate()) {
if ($this->send_mail()) {
echo json_encode('success');
wp_create_nonce( "mtscontact" ); // purge used nonce
} else {
// wp_mail() unable to send
$this->errors['sendmail'] = __('An error occurred. Please contact site administrator.', 'dv');
echo json_encode($this->errors);
}
} else {
echo json_encode($this->errors);
}
die();
}
public function init() {
// No-js fallback
if ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) {
if (!empty($_POST['action']) && $_POST['action'] == 'mtscontact') {
if ($this->validate()) {
if (!$this->send_mail()) {
$this->errors['sendmail'] = __('An error occurred. Please contact site administrator.', 'dv');
} else {
$this->success = true;
}
}
}
}
}
public function register_scripts() {
wp_register_script('mtscontact', get_template_directory_uri() . '/js/contact.js', true);
wp_localize_script('mtscontact', 'mtscontact', array('ajaxurl' => admin_url('admin-ajax.php')));
}

private function validate() {
// check nonce
if (!check_ajax_referer( 'mtscontact', 'mtscontact_nonce', false )) {
$this->errors['nonce'] = __('Please try again.', 'dv');
}

// check honeypot // must be empty
if (!empty($_POST['mtscontact_captcha'])) {
$this->errors['captcha'] = __('Please try again.', 'dv');
}

// name field
$name = trim(str_replace(array("\n", "\r", "<", ">"), '', strip_tags($_POST['mtscontact_name'])));
if (empty($name)) {
$this->errors['name'] = __('Please enter your name.', 'dv');
}

// email field
$useremail = trim($_POST['mtscontact_email']);
if (!is_email($useremail)) {
$this->errors['email'] = __('Please enter a valid email address.', 'dv');
}

// message field
$message = strip_tags($_POST['mtscontact_message']);
if (empty($message)) {
$this->errors['message'] = __('Please enter a message.', 'dv');
}

// store fields for no-js
$this->userinput = array('name' => $name, 'email' => $useremail, 'message' => $message);

return empty($this->errors);
}
private function send_mail() {
$email_to = get_option('admin_email');
$email_subject = __('Contact Form Message from', 'dv').' '.get_bloginfo('name');
$email_message = __('Name:', 'dv').' '.$this->userinput['name']."\n\n".
__('Email:', 'dv').' '.$this->userinput['email']."\n\n".
__('Message:', 'dv').' '.$this->userinput['message'];
return wp_mail($email_to, $email_subject, $email_message);
}
public function get_form() {
wp_enqueue_script('mtscontact');

$return = '';
if (!$this->success) {
$return .= '<form method="post" action="" id="mtscontact_form" class="contact-form">
<input type="text" name="mtscontact_captcha" value="" style="display: none;" />
<input type="hidden" name="mtscontact_nonce" value="'.wp_create_nonce( "mtscontact" ).'" />
<input type="hidden" name="action" value="mtscontact" />

<label for="mtscontact_name">'.__('Name', 'dv').'</label>
<input type="text" name="mtscontact_name" value="'.esc_attr($this->userinput['name']).'" id="mtscontact_name" />

<label for="mtscontact_email">'.__('Email', 'dv').'</label>
<input type="text" name="mtscontact_email" value="'.esc_attr($this->userinput['email']).'" id="mtscontact_email" />

<label for="mtscontact_message">'.__('Message', 'dv').'</label>
<textarea name="mtscontact_message" id="mtscontact_message">'.esc_textarea($this->userinput['message']).'</textarea>

<input type="submit" value="'.__('Send', 'dv').'" id="mtscontact_submit" />
</form>';
}
$return .= '<div id="mtscontact_success"'.($this->success ? '' : ' style="display: none;"').'>'.__('Your message has been sent.', 'dv').'</div>';
return $return;
}
public function get_errors() {
$html = '';
foreach ($this->errors as $error) {
$html .= '<div class="mtscontact_error">'.$error.'</div>';
}
return $html;
}
}
$mtscontact = new mtscontact;
// Simple wrappers, to be used in template files
function mts_contact_form() {
global $mtscontact;
echo $mtscontact->get_errors(); // if there are any
echo $mtscontact->get_form();
}
function mts_get_contact_form() { // this could be used for shortcode support
global $mtscontact;
return $mtscontact->get_errors() . $mtscontact->get_form();
}
?>

لینک به ارسال

کل get_option عوض کردین یا فقط استرینگ admin_email ؟

طبق راهنمای وردپرس کدی که دادم باید درست کار کنه:

https://codex.wordpr...ference/wp_mail

اگر باز هم موفق نشدید میتونید از توی php.net راهنمای تابع mail رو بخونید و ایمیل رو مستقیم ارسال کنید.

موفق باشید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...