如何检查页面模板是否在函数中。php

时间:2020-10-31 作者:Slingy

所以我有一个网站,有多个联系人表单7。一个功能由wpcf7_before_send_mail 钩此函数只能用于一个表单。指定的表单只在一个页面模板中使用,所以我提出了简单的解决方案-使用is_page_template 功能,但不起作用。

那么,如何检查是否使用了页面模板。代码放在函数中。php。页面模板位于页面模板文件夹中。

这是我的密码

add_action( \'wpcf7_before_send_mail\', \'wpcf7_add_text_to_mail_body\' );

function wpcf7_add_text_to_mail_body($contact_form) {
    if ( is_page_template( \'page-templates/konfigurator.php\' ) ) {

        $submission = WPCF7_Submission::get_instance();

        if ( $submission ) {
            $email = $submission->get_posted_data(\'your-email\');
            // $first_name = $formdata[\'text-7\']; 
            //$password = \'lorem\';

            $user_pass = wp_generate_password();

            if( !email_exists( $email )) {

                $user_id = wp_create_user( $email, $user_pass, $email );

                $user = new WP_User($user_id);
                $user->set_role(\'customer\');

                $emails = WC()->mailer()->get_emails();

                $emails[\'WC_Email_Customer_New_Account\']->trigger( $user_id, $user_pass, true );
                
            }
        }
    }
}

1 个回复
SO网友:Slingy

所以,我想出来了。使用挂钩wpcf7_before_send_mail 您无法访问is_page_template function 工作。因此,您必须使用显示的方法here