Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress主题联系人表单不工作_Php_Wordpress_Forms_Contact Form - Fatal编程技术网

Php Wordpress主题联系人表单不工作

Php Wordpress主题联系人表单不工作,php,wordpress,forms,contact-form,Php,Wordpress,Forms,Contact Form,我最近主动提出帮助一位朋友建立一个正在开发的网站,但我在联系方式上遇到了麻烦。虽然表单通过了验证(理论上),但表单不会发出。 现在,我已经把它缩小到以下函数,特别是第二个foreach循环。。。看起来字段值显示为空。。。 这是函数,完成…: function send() { $new_post = array(); foreach ($_POST as $key => $post) {

我最近主动提出帮助一位朋友建立一个正在开发的网站,但我在联系方式上遇到了麻烦。虽然表单通过了验证(理论上),但表单不会发出。 现在,我已经把它缩小到以下函数,特别是第二个foreach循环。。。看起来字段值显示为空。。。 这是函数,完成…:

function send()
        {
            $new_post = array();

            foreach ($_POST as $key => $post) 
            {
                $new_post[str_replace('form_','',$key)] = $post;
            }

            $mymail     = empty($this->form_parameters['myemail']) ? $new_post['myemail'] : $this->form_parameters['myemail'];
            $myblogname = empty($this->form_parameters['myblogname']) ? $new_post['myblogname'] : $this->form_parameters['myblogname'];
            $subject    = empty($new_post['subject']) ? "New Message" : $new_post['subject'];

            $default_from = parse_url(home_url());

            //set the email adress
            $from = "no-reply@wp-message.com";
            $usermail = false;

            //if(!empty($default_from['host'])) $from = "no-reply@".$default_from['host'];

            if(!empty($this->autoresponder[0]))
            {
                $from = $_POST[$this->autoresponder[0]];
                $usermail = true;
            }
            else
            {
                $email_variations = array( 'e-mail', 'email', 'mail' );

                foreach($email_variations as $key)
                {
                    foreach ($new_post as $current_key => $current_post)
                    {
                        if( strpos($current_key, $key) !== false)
                        {
                            $from = $new_post[$current_key];
                            $usermail = true;
                            break;
                        }

                    }

                    if($usermail == true) break;
                }
            }

            $to = urldecode( $mymail );
            $from = urldecode( $from );
            $subject = urldecode( $subject );
            $message = "";

            foreach($this->form_elements as $key => $element)
            {
                if(!empty($new_post[str_replace(" ", "_", preg_replace("[^A-Za-z]", "" ,$key))]))
                {
                        if($element['type'] == 'textarea') $message .= "<br/>";
                        $message .= $element['label'].": ".nl2br(urldecode($new_post[str_replace(" ", "_", preg_replace("[^A-Za-z]", "" ,$key))]))."<br/>";
                        if($element['type'] == 'textarea') $message .= "<br/>";
                }
                else { $message .= "error..."; }
            }

            $header  = 'MIME-Version: 1.0' . "\r\n";
            $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
            $header .= 'From:'. $from . " \r\n";
            //wp_mail('gnikolopoulos@gmail.com', $subject, $message, $header);
            if(!wp_mail($to, $subject, $message, $header)){
                $this->errors = true;
                return false;
            }

            if($usermail && !empty($this->form_parameters['autoresponder']))
            {
                $header  = 'MIME-Version: 1.0' . "\r\n";
                $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
                $header .= 'From:'. urldecode( $this->form_parameters['autoresponder_email']) . " \r\n";
                $message = nl2br($this->form_parameters['autoresponder'])."<br/><br/><br/><strong>Your Message:</strong><br/><br/>".$message;
                if(!wp_mail($from, $this->form_parameters['autoresponder_subject'], $message, $header)){
                    $this->errors = true;
                    return false;
                }
            }

            return true;
    }
函数send()
{
$new_post=array();
foreach($\发布为$key=>$POST)
{
$new_post[str_replace('form_',''.$key)]=$post;
}
$mymail=empty($this->form_参数['myemail'])?$new_post['myemail']:$this->form_参数['myemail'];
$myblogname=empty($this->form_参数['myblogname'])?$new_post['myblogname']:$this->form_参数['myblogname'];
$subject=empty($new_post['subject'])?“新消息”:$new_post['subject'];
$default_from=parse_url(home_url());
//设置电子邮件地址
$from=“否-reply@wp-message.com“;
$usermail=false;
//如果(!empty($default_from['host']))$from=“no reply@”。$default_from['host'];
如果(!empty($this->autoresponder[0]))
{
$from=$\u POST[$this->autoresponder[0]];
$usermail=true;
}
其他的
{
$email_variations=数组('e-mail','email','mail');
foreach($email\u变体为$key)
{
foreach($current\u key=>$current\u post的新职位)
{
if(strpos($current_key,$key)!==false)
{
$from=$new_post[$current_key];
$usermail=true;
打破
}
}
如果($usermail==true)中断;
}
}
$to=urldecode($mymail);
$from=urldecode$from;
$subject=urldecode($subject);
$message=“”;
foreach($this->form_元素为$key=>$element)
{
如果(!empty($new_post[str_replace(“,”,preg_replace(“[^A-Za-z],”,“,$key))]))
{
如果($element['type']=='textarea')$message.=“
”; $message.=$element['label'].:“.nl2br(urldecode($new_post[str_replace(“,”,preg_replace(“[^A-Za-z],”,“,$key))))。”
; 如果($element['type']=='textarea')$message.=“
”; } else{$message.=“错误…”;} } $header='MIME版本:1.0'。“\r\n”; $header.='内容类型:text/html;字符集=utf-8'。“\r\n”; $header.='From:'.$From.\r\n; //wp_邮件('gnikolopoulos@gmail.com“,$subject,$message,$header); 如果(!wp_mail($to,$subject,$message,$header)){ $this->errors=true; 返回false; } if($usermail&&!empty($this->form_参数['autoresponder'])) { $header='MIME版本:1.0'。“\r\n”; $header.='内容类型:text/html;字符集=utf-8'。“\r\n”; $header.='From:'.urldecode($this->form\u parameters['autoresponder\u email'])。“\r\n”; $message=nl2br($this->form_parameters['autoresponder'])。“



您的消息:

。”; 如果(!wp_mail($from,$this->form_参数['autoresponder_subject',$message,$header)){ $this->errors=true; 返回false; } } 返回true; }
任何帮助都将不胜感激。。。。 仅供参考,我想他是从另一个主题得到这个表单的,而不是他正在使用的主题…

看起来像

$new_post[str_replace('form_','',$key)] = $post;
线路是问题的根源!代码没有给表单字段的名称添加前缀,因此str_replace函数失败。。。。当我修改代码以实际包含所需的前缀时,一切都很正常。。。真不敢相信我没看到那个