簡體   English   中英

WordPress自定義注冊表格/錯誤

[英]Wordpress Custom Registration Form / Errors

我在wordpress購買中創建了一個自定義注冊表格,出現以下錯誤,而且似乎找不到導致它們的原因。

注意:未定義的變量:第219行的/Applications/MAMP/htdocs/****/wp-content/plugins/carematch/carematch.php中的new_user

注意:未定義的變量:/Applications/MAMP/htdocs/****/wp-content/plugins/carematch/carematch.php中的錯誤,位於第233行

carer-registration.php

<?php get_header(); 
    // Template Name: Carer Registration
?>
<div id="main-content">
    <div class="container">
        <div class="row">
            <div class="col-md-12">

                <?php do_action('carer_registration'); ?>

                <form method="POST" id="add-carer" class="user-forms" action="">

                    <strong>Name</strong>
                    <p class="first-name">
                        <label for="first-name"><?php echo 'Firstname (required)'; ?></label>
                        <input class="text-input" name="first-name" type="text" id="first-name" value="" />
                    </p>

                    <p class="surname">
                        <label for="surname"><?php echo 'Surname (required)'; ?></label>
                        <input class="text-input" name="surname" type="text" id="surname" value="" />
                    </p>

                    <p class="first-line">
                        <label for="first-line"><?php echo 'First line (required)'; ?></label>
                        <input class="text-input" name="first-line" type="text" id="first-line" value="" />
                    </p>

                    <p class="town-city">
                        <label for="town-city"><?php echo 'Town/City (required)'; ?></label>
                        <input class="text-input" name="town-city" type="text" id="town-city" value="" />
                    </p>

                    <p class="county">
                        <label for="county"><?php echo 'County (required)'; ?></label>
                        <input class="text-input" name="county" type="text" id="county" value="" />
                    </p>

                    <p class="postcode">
                        <label for="email"><?php echo 'Postcode (required)'; ?></label>
                        <input class="text-input" name="postcode" type="text" id="postcode" value="" />
                    </p>

                    <p class="mobile">
                        <label for="mobile"><?php echo 'Mobile (required)'; ?></label>
                        <input class="number-input" name="postcode" type="number" id="mobile" value="" />
                    </p>

                    <p class="email">
                        <label for="email"><?php echo 'Email Address (required)'; ?></label>
                        <input class="email-input" name="email" type="email" id="email" value="" />
                    </p>

                    <p class="form-submit">
                        <input name="adduser" type="submit" id="adduser" class="submit button" value="Register" />
                    </p>

                </form>

            </div>
        </div>
    </div>
</div>
<?php get_footer(); ?>

functions.php

//PROCESS CARER REGISTRATION FORM               
function process_carer_registration() {

    if (isset($_POST['add-carer'])) {

        echo "success";

        $user_pass = wp_generate_password();

        $userdata = array(
            'user_pass' => $user_pass,
            'first-name' => esc_attr( $_POST['first-name'] ),
            'surname' => esc_attr( $_POST['surname'] ),
            'first-line' => esc_attr( $_POST['first-line'] ),
            'town-city' => esc_attr( $_POST['town-city'] ),
            'county' => esc_attr( $_POST['county'] ),
            'postcode' => esc_attr( $_POST['postcode'] ),
            'mobile' => esc_attr( $_POST['mobile'] ),
            'email' => esc_attr( $_POST['email'] ),
            'user_login' => esc_attr( $_POST['first-name'] . $_POST['surname'] . rand(1000,9999) ),
            'role' => get_option( 'carer' ),
        );

        if ( !$userdata['first-name'] )
            $error = 'Please enter your first name';

        elseif ( !$userdata['surname'] )
            $error = 'Please enter your surname';

        elseif ( !$userdata['first-line'] )
            $error = 'Please enter the first line of your address';

        elseif ( !$userdata['town-city'] )
            $error = 'Please enter your town/city';

        elseif ( !$userdata['county'] )
            $error = 'Please enter your county';

        elseif ( !$userdata['postcode'] )
            $error = 'Please enter your postcode';

        elseif ( !$userdata['mobile'] )
            $error = 'Please enter your mobile phone number';

        elseif ( !is_email($userdata['email'], true) )

            $error = 'You must enter a valid email address.';

        elseif ( email_exists($userdata['email']) )

            $error = 'Sorry, that email address is already in use';

        // setup new users and send notification
        else {
            $new_user = wp_insert_user( $userdata );
            wp_new_user_notification($new_user, $user_pass);
        }
    }

    if ( $new_user ) : ?>

    <p class="alert">
    <?php

        $user = get_user_by('id',$new_user);
        echo 'Thank you for registering ' . $user->first-name;
        echo '<br/>Please check your email inbox. That\'s where you\'ll recieve your login password.<br/> (Be sure to check your spam folder)';

    ?>
    </p>

    <?php else : ?>

        <?php if ( $error ) : ?>
            <p class="error">
                <?php echo $error; ?>
            </p>
        <?php endif; ?>

    <?php endif;

}
add_action('carer_registration', 'process_carer_registration');

在函數頂部,添加$new_user = null; $error = null; 因此,當這些變量未定義時,以下條件不會發出警告。

function process_carer_registration() {
    $new_user = null;
    $error = null;

您可以使用isset()函數擺脫此錯誤

這行if ( $new_user ) : ?> 更改為 if ( isset($new_user) ) : ?>

<?php if ( $error ) : ?> 更改為 <?php if ( isset($error) ) : ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM