anti-splog captcha not functioning as expected

Using Anti-Splog on a multisite. Have chosen "admin defined questions" as my preference. Its showing up on the registration page, but isn't stopping spam registrations. (Through testing have found that it accepts ANY text.)

http://cre8tives.org/wp-signup.php

An important detail... am using my own signup page within my theme folder.

  • peter_harris

    Hey Ari, here's the code. It was copied directly from the default WP page. (90% sure I followed a tutorial on the WPMU blog.)

    <?php
    
        /*
        Template Name: Signup page
        */
    
        /** Sets up the WordPress Environment. */
        require( '../../../wp-load.php' );
    
        add_action( 'wp_head', 'wp_no_robots' );
    
        require( '../../../wp-blog-header.php' );
    
        if ( is_array( get_site_option( 'illegal_names' )) && isset( $_GET[ 'new' ] ) && in_array( $_GET[ 'new' ], get_site_option( 'illegal_names' ) ) == true ) {
                wp_redirect( network_home_url() );
                die();
        }
    
        /**
         * Prints signup_header via wp_head
         *
         * @since MU
         */
        function do_signup_header() {
                /**
                 * Fires within the <head> section of the site sign-up screen.
                 *
                 * @since 3.0.0
                 */
                do_action( 'signup_header' );
        }
        add_action( 'wp_head', 'do_signup_header' );
    
        if ( !is_multisite() ) {
                wp_redirect( site_url('wp-login.php?action=register') );
                die();
        }
    
        if ( !is_main_site() ) {
                wp_redirect( network_site_url( 'wp-signup.php' ) );
                die();
        }
    
        // Fix for page title
        $wp_query->is_404 = false;
    
        /**
         * Prints styles for front-end Multisite signup pages
         *
         * @since MU
         */
        function wpmu_signup_stylesheet() {
                ?>
                <style type="text/css">
                        .mu_register { width: 90%; margin:0 auto; }
                        .mu_register form { margin-top: 2em; }
                        .mu_register .error { font-weight:normal; padding:10px; color:#333333; background:#f4edec; border:1px solid #CC0000; border-radius: 0px; -moz-border-radius: 0px; -webkit-border-radius: 0px; margin:0 0 5px 0;width: 40%;}
                        .mu_register input[type="submit"],
                                .mu_register #blog_title,
                                .mu_register #user_email,
                                .mu_register #blogname,
                                .mu_register #user_name { margin:0; display: inline; }
                        .mu_register input[type="submit"] { margin-bottom: 35px;}
                        .mu_register #password_1, .mu_register #password_2 { margin:0 !important;width: 250px !important; font-size: 100% !important;}
                        .mu_register .prefix_address,
                                .mu_register .suffix_address {font-size: 18px;display:inline; }
                        .mu_register label { font-size:100%; display:block; margin:15px 0 0; }
                        .mu_register label.checkbox { display:inline; }
                        .mu_register .mu_alert { padding:10px; color:#333333; background:#ffffe0; border:1px solid #e6db55; }
                        .mu_register #blog_title, .mu_register #user_email, .mu_register #blogname, .mu_register #user_name {
        width: 250px !important;
        }
        				input#qa { margin: -17px 0 0 0; width: 250px; font-size: 100%; }
        				#setupform small, #setupform p label {display: none !important; }
    
        .widecolumn {
        margin: 0 auto 50px auto;
        float: none !important;
        background: #fff;
        }
    
        #footer-bottom { border-bottom: 0px; }
    
                </style>
                <?php
        }
    
        add_action( 'wp_head', 'wpmu_signup_stylesheet' );
        get_header();
    
        /**
         * Fires before the site sign-up form.
         *
         * @since 3.0.0
         */
        do_action( 'before_signup_form' );
        ?>
    
        <div id="content" class="widecolumn">
        <div class="mu_register">
        <?php
        /**
         * Generates and displays the Signup and Create Site forms
         *
         * @since MU
         *
         * @param string $blogname The new site name
         * @param string $blog_title The new site title
         * @param array $errors
         */
        function show_blog_form( $blogname = '', $blog_title = '', $errors = '' ) {
                $current_site = get_current_site();
                // Blog name
                if ( !is_subdomain_install() )
                        echo '<label for="blogname">' . __('Site Name:') . '</label>';
                else
                        echo '<label for="blogname">' . __('<strong>Site Domain</strong>:') . '</label>';
    
                if ( $errmsg = $errors->get_error_message('blogname') ) { ?>
                        <p class="error"><?php echo $errmsg ?></p>
                <?php }
    
                if ( !is_subdomain_install() )
                        echo '<span class="prefix_address">' . $current_site->domain . $current_site->path . '</span><input name="blogname" type="text" id="blogname" value="'. esc_attr($blogname) .'" maxlength="60" /><br />';
                else
                        echo '<input name="blogname" type="text" id="blogname" value="'.esc_attr($blogname).'" maxlength="60" /><span class="suffix_address">.' . ( $site_domain = preg_replace( '|^www\.|', '', $current_site->domain ) ) . '</span><br />';
    
                if ( !is_user_logged_in() ) {
                        if ( !is_subdomain_install() )
                                $site = $current_site->domain . $current_site->path . __( 'sitename' );
                        else
                                $site = __( 'domain' ) . '.' . $site_domain . $current_site->path;
                        echo '<p>(<strong>' . sprintf( __('Your address will be %s.'), $site ) . '</strong>) ' . __( 'Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!' ) . '</p>';
                }
    
                // Blog Title
                ?>
                <label for="blog_title"><?php _e('<strong>Site Title</strong>:') ?></label>
                <?php if ( $errmsg = $errors->get_error_message('blog_title') ) { ?>
                        <p class="error"><?php echo $errmsg ?></p>
                <?php }
                echo '<input name="blog_title" type="text" id="blog_title" value="'.esc_attr($blog_title).'" />';
                ?>
    
                <div id="privacy">
                <p class="privacy-intro">
                    <label for="blog_public_on"><?php _e('<strong>Privacy</strong>:') ?></label>
                    <?php _e( 'Allow search engines to index this site.' ); ?>
                    <br style="clear:both" />
                    <label class="checkbox" for="blog_public_on">
                        <input type="radio" id="blog_public_on" name="blog_public" value="1" <?php if ( !isset( $_POST['blog_public'] ) || $_POST['blog_public'] == '1' ) { ?>checked="checked"<?php } ?> />
                        <strong><?php _e( 'Yes' ); ?></strong>
                    </label>
                    <label class="checkbox" for="blog_public_off">
                        <input type="radio" id="blog_public_off" name="blog_public" value="0" <?php if ( isset( $_POST['blog_public'] ) && $_POST['blog_public'] == '0' ) { ?>checked="checked"<?php } ?> />
                        <strong><?php _e( 'No' ); ?></strong>
                    </label>
                </p>
                </div>
    
                <?php
                /**
                 * Fires after the site sign-up form.
                 *
                 * @since 3.0.0
                 *
                 * @param array $errors An array possibly containing 'blogname' or 'blog_title' errors.
                 */
    
        }
    
        /**
         * Validate the new site signup
         *
         * @since MU
         *
         * @uses wp_get_current_user() to retrieve the current user
         * @uses wpmu_validate_blog_signup() to validate new site signup for the current user
         * @return array Contains the new site data and error messages.
         */
        function validate_blog_form() {
                $user = '';
                if ( is_user_logged_in() )
                        $user = wp_get_current_user();
    
                return wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title'], $user);
        }
    
        /**
         * Display user registration form
         *
         * @since MU
         *
         * @param string $user_name The entered username
         * @param string $user_email The entered email address
         * @param array $errors
         */
        function show_user_form($user_name = '', $user_email = '', $errors = '') {
                // User name
                echo '<label for="user_name">' . __('Username:') . '</label>';
                if ( $errmsg = $errors->get_error_message('user_name') ) {
                        echo '<p class="error">'.$errmsg.'</p>';
                }
                echo '<input name="user_name" type="text" id="user_name" value="'. esc_attr($user_name) .'" maxlength="60" /><br />';
                _e( '<br>' );
                ?>
    
                <label for="user_email"><?php _e( 'Email&nbsp;Address:' ) ?></label>
                <?php if ( $errmsg = $errors->get_error_message('user_email') ) { ?>
                        <p class="error"><?php echo $errmsg ?></p>
                <?php } ?>
                <input name="user_email" type="text" id="user_email" value="<?php  echo esc_attr($user_email) ?>" maxlength="200" /><br /><?php _e('<span class="smallertext">We will send your registration email to this address.<br>(Double-check your email address before continuing.)</span><br><br>') ?>
        <?php
        if (isset($_POST['honeypot'])) {
        // error condition, redisplay form
        }
        ?>
    
        <label style="display:block;position:absolute;left:-9999px">
        Please leave this checkbox blank
        <input type=checkbox name=honeypot value=1>
        </label>
    
                <?php
                if ( $errmsg = $errors->get_error_message('generic') ) {
                        echo '<p class="error">' . $errmsg . '</p>';
                }
                /**
                 * Fires at the end of the user registration form on the site sign-up form.
                 *
                 * @since 3.0.0
                 *
                 * @param array $errors An array possibly containing 'user_name' or 'user_email' errors.
                 */
                do_action( 'signup_extra_fields', $errors );
                do_action( 'signup_blogform', $errors );
    
        }
    
        /**
         * Validate user signup name and email
         *
         * @since MU
         *
         * @uses wpmu_validate_user_signup() to retrieve an array of user data
         * @return array Contains username, email, and error messages.
         */
        function validate_user_form() {
                return wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
        }
    
        /**
         * Allow returning users to sign up for another site
         *
         * @since MU
         *
         * @uses wp_get_current_user() to get the current user
         * @param string $blogname The new site name
         * @param string $blog_title The new blog title
         * @param array $errors
         */
        function signup_another_blog( $blogname = '', $blog_title = '', $errors = '' ) {
                $current_user = wp_get_current_user();
    
                if ( ! is_wp_error($errors) ) {
                        $errors = new WP_Error();
                }
    
                $signup_defaults = array(
                        'blogname'   => $blogname,
                        'blog_title' => $blog_title,
                        'errors'     => $errors
                );
    
                /**
                 * Filter the default site sign-up variables.
                 *
                 * @since 3.0.0
                 *
                 * @param array $signup_defaults {
                 *     An array of default site sign-up variables.
                 *
                 *     @type string $blogname   The site blogname.
                 *     @type string $blog_title The site title.
                 *     @type array  $errors     An array possibly containing 'blogname' or 'blog_title' errors.
                 * }
                 */
                $filtered_results = apply_filters( 'signup_another_blog_init', $signup_defaults );
    
                $blogname = $filtered_results['blogname'];
                $blog_title = $filtered_results['blog_title'];
                $errors = $filtered_results['errors'];
    
                echo '<h2 style="padding-top:30px;">' . sprintf( __( 'Get a new %s website' ), get_current_site()->site_name ) . '</h2>';
    
                if ( $errors->get_error_code() ) {
                        echo '<p>' . __( 'There was a problem, please correct the form below and try again.' ) . '</p>';
                }
                ?>
    
                <p style="padding-top:10px;"><?php _e( 'Site domain suggestions: your artist name, real name or project.' ) ?></p>
    
                <p><?php _e( '<span class="smallertext" style="width:70%;display:block;"><strong>NOTES</strong>: You won’t be able to change your cre8tives site domain name later, so choose wisely! (You <strong>will</strong> however be able to upgrade and connect using your own www domain name, so don’t stress too much. Finally, if you would like to use your <em>username</em> for your site name, we will have to set it up for you, so write us through our <a href="http://cre8tives.org/wp-admin/admin.php?page=ticket-manager">support page</a>.)</span>' ) ?></p>
                <form id="setupform" method="post" action="wp-signup.php">
                        <input type="hidden" name="stage" value="gimmeanotherblog" />
                        <?php
                        /**
                         * Hidden sign-up form fields output when creating another site or user.
                         *
                         * @since MU
                         *
                         * @param string $context A string describing the steps of the sign-up process. The value can be
                         *                        'create-another-site', 'validate-user', or 'validate-site'.
                         */
                        do_action( 'signup_hidden_fields', 'create-another-site' );
                        ?>
                        <?php show_blog_form($blogname, $blog_title, $errors); ?>
                        <p class="submit"><input type="submit" name="submit" class="small button secondary" value="<?php esc_attr_e( 'Create Site' ) ?>" /></p>
                </form>
                <?php
        }
    
        /**
         * Validate a new blog signup
         *
         * @since MU
         *
         * @uses wp_get_current_user() to retrieve the current user
         * @uses wpmu_create_blog() to add a new site
         * @uses confirm_another_blog_signup() to confirm the user's new site signup
         * @return bool True if blog signup was validated, false if error
         */
        function validate_another_blog_signup() {
                global $wpdb, $blogname, $blog_title, $errors, $domain, $path;
                $current_user = wp_get_current_user();
                if ( !is_user_logged_in() )
                        die();
    
                $result = validate_blog_form();
                extract($result);
    
                if ( $errors->get_error_code() ) {
                        signup_another_blog($blogname, $blog_title, $errors);
                        return false;
                }
    
                $public = (int) $_POST['blog_public'];
    
                $blog_meta_defaults = array(
                        'lang_id' => 1,
                        'public'  => $public
                );
    
                /**
                 * Filter the new site meta variables.
                 *
                 * @since MU
                 * @deprecated 3.0.0 Use the 'add_signup_meta' filter instead.
                 *
                 * @param array $blog_meta_defaults An array of default blog meta variables.
                 */
                $meta = apply_filters( 'signup_create_blog_meta', $blog_meta_defaults );
                /**
                 * Filter the new default site meta variables.
                 *
                 * @since 3.0.0
                 *
                 * @param array $meta {
                 *     An array of default site meta variables.
                 *
                 *     @type int $lang_id     The language ID.
                 *     @type int $blog_public Whether search engines should be discouraged from indexing the site. 1 for true, 0 for false.
                 * }
                 */
                $meta = apply_filters( 'add_signup_meta', $meta );
    
                wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid );
                confirm_another_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
                return true;
        }
    
        /**
         * Confirm a new site signup
         *
         * @since MU
         *
         * @param string $domain The domain URL
         * @param string $path The site root path
         * @param string $user_name The username
         * @param string $user_email The user's email address
         * @param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup()
         */
        function confirm_another_blog_signup( $domain, $path, $blog_title, $user_name, $user_email = '', $meta = array() ) {
                ?>
                <h2 style="padding:30px 0px 30px;"><?php printf( __( 'The site %s is yours.' ), "<a href='http://{$domain}{$path}'>{$blog_title}</a>" ) ?></h2>
                <p>
                                <?php printf( __( '<a href="http://%1$s">http://%2$s</a> is your new site.<br><br><a href="%3$s">Log in</a> as “%4$s” using your existing password.' ), $domain.$path, $domain.$path, "http://" . $domain.$path . "wp-login.php", $user_name ) ?>
                </p>
                <?php
                /**
                 * Fires when the site or user sign-up process is complete.
                 *
                 * @since 3.0.0
                 */
                do_action( 'signup_finished' );
        }
    
        /**
         * Setup the new user signup process
         *
         * @since MU
         *
         * @uses apply_filters() filter $filtered_results
         * @uses show_user_form() to display the user registration form
         * @param string $user_name The username
         * @param string $user_email The user's email
         * @param array $errors
         */
        function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
                global $active_signup;
    
                if ( !is_wp_error($errors) )
                        $errors = new WP_Error();
    
                $signup_for = isset( $_POST[ 'signup_for' ] ) ? esc_html( $_POST[ 'signup_for' ] ) : 'blog';
    
                $signup_user_defaults = array(
                        'user_name'  => $user_name,
                        'user_email' => $user_email,
                        'errors'     => $errors,
                );
    
                /**
                 * Filter the default user variables used on the user sign-up form.
                 *
                 * @since 3.0.0
                 *
                 * @param array $signup_user_defaults {
                 *     An array of default user variables.
                 *
                 *     @type string $user_name  The user username.
                 *     @type string $user_email The user email address.
                 *     @type array  $errors     An array of possible errors relevant to the sign-up user.
                 * }
                 */
                $filtered_results = apply_filters( 'signup_user_init', $signup_user_defaults );
                $user_name = $filtered_results['user_name'];
                $user_email = $filtered_results['user_email'];
                $errors = $filtered_results['errors'];
    
                ?>
    
        <h2 style="padding-top:30px;"><?php printf( __( 'sign up for cre8tives' ), get_current_site()->site_name ) ?></h2>
    
                <form id="setupform" method="post" action="wp-signup.php">
                        <input type="hidden" name="stage" value="validate-user-signup" />
                        <?php
                        /** This action is documented in wp-signup.php */
                        do_action( 'signup_hidden_fields', 'validate-user' );
                        ?>
                        <?php show_user_form($user_name, $user_email, $errors); ?>
    
                        <p style="margin-top:-15px;"><input type="submit" name="submit" class="button secondary" value="<?php esc_attr_e('Join') ?>" /></p>
                </form> <?php
        }
    
        /**
         * Validate the new user signup
         *
         * @since MU
         *
         * @uses validate_user_form() to retrieve an array of the user data
         * @uses wpmu_signup_user() to signup the new user
         * @uses confirm_user_signup() to confirm the new user signup
         * @return bool True if new user signup was validated, false if error
         */
        function validate_user_signup() {
                $result = validate_user_form();
                extract($result);
    
                if ( $errors->get_error_code() ) {
                        signup_user($user_name, $user_email, $errors);
                        return false;
                }
    
                if ( 'blog' == $_POST['signup_for'] ) {
                        signup_blog($user_name, $user_email);
                        return false;
                }
    
                /** This filter is documented in wp-signup.php */
                wpmu_signup_user( $user_name, $user_email, apply_filters( 'add_signup_meta', array() ) );
    
                confirm_user_signup($user_name, $user_email);
                return true;
        }
    
        /**
         * New user signup confirmation
         *
         * @since MU
         *
         * @param string $user_name The username
         * @param string $user_email The user's email address
         */
        function confirm_user_signup($user_name, $user_email) {
                ?>
                <h2 style="padding:50px 0 50px;"><?php printf( __( '%s is your new username' ), $user_name) ?></h2>
                <p><?php _e( 'But, before you can start using your new username, <strong>you must activate it</strong>.' ) ?></p>
                <p><?php printf( __( 'Check your inbox at <strong>%s</strong> and click the link we emailed you.' ), $user_email ); ?></p>
                <p><?php _e( 'If you do not activate your username within two days, you will have to sign up again.' ); ?></p>
                <?php
                /** This action is documented in wp-signup.php */
                do_action( 'signup_finished' );
        }
    
        /**
         * Setup the new site signup
         *
         * @since MU
         *
         * @uses apply_filters() to filter $filtered_results
         * @uses show_blog_form() to display the blog signup form
         * @param string $user_name The username
         * @param string $user_email The user's email address
         * @param string $blogname The site name
         * @param string $blog_title The site title
         * @param array $errors
         */
        function signup_blog($user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '') {
                if ( !is_wp_error($errors) )
                        $errors = new WP_Error();
    
                $signup_blog_defaults = array(
                        'user_name'  => $user_name,
                        'user_email' => $user_email,
                        'blogname'   => $blogname,
                        'blog_title' => $blog_title,
                        'errors'     => $errors
                );
    
                /**
                 * Filter the default site creation variables for the site sign-up form.
                 *
                 * @since 3.0.0
                 *
                 * @param array $signup_blog_defaults {
                 *     An array of default site creation variables.
                 *
                 *     @type string $user_name  The user username.
                 *     @type string $user_email The user email address.
                 *     @type string $blogname   The blogname.
                 *     @type string $blog_title The title of the site.
                 *     @type array  $errors     An array of possible errors relevant to new site creation variables.
                 * }
                 */
                $filtered_results = apply_filters( 'signup_blog_init', $signup_blog_defaults );
    
                $user_name = $filtered_results['user_name'];
                $user_email = $filtered_results['user_email'];
                $blogname = $filtered_results['blogname'];
                $blog_title = $filtered_results['blog_title'];
                $errors = $filtered_results['errors'];
    
                if ( empty($blogname) )
                        $blogname = $user_name;
                ?>
                <form id="setupform" method="post" action="wp-signup.php">
                        <input type="hidden" name="stage" value="validate-blog-signup" />
                        <input type="hidden" name="user_name" value="<?php echo esc_attr($user_name) ?>" />
                        <input type="hidden" name="user_email" value="<?php echo esc_attr($user_email) ?>" />
                        <?php
                        /** This action is documented in wp-signup.php */
                        do_action( 'signup_hidden_fields', 'validate-site' );
                        ?>
                        <?php show_blog_form($blogname, $blog_title, $errors); ?>
                        <p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e('Signup') ?>" /></p>
                </form>
                <?php
        }
    
        /**
         * Validate new site signup
         *
         * @since MU
         *
         * @uses wpmu_validate_user_signup() to retrieve an array of the new user data and errors
         * @uses wpmu_validate_blog_signup() to retrieve an array of the new site data and errors
         * @uses apply_filters() to make signup $meta filterable
         * @uses signup_user() to signup a new user
         * @uses signup_blog() to signup a the new user to a new site
         * @return bool True if the site signup was validated, false if error
         */
        function validate_blog_signup() {
                // Re-validate user info.
                $result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
                extract($result);
    
                if ( $errors->get_error_code() ) {
                        signup_user($user_name, $user_email, $errors);
                        return false;
                }
    
                $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
                extract($result);
    
                if ( $errors->get_error_code() ) {
                        signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
                        return false;
                }
    
                $public = (int) $_POST['blog_public'];
                $meta = array ('lang_id' => 1, 'public' => $public);
    
                /** This filter is documented in wp-signup.php */
                $meta = apply_filters( 'add_signup_meta', $meta );
    
                wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
                confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
                return true;
        }
    
        /**
         * New site signup confirmation
         *
         * @since MU
         *
         * @param string $domain The domain URL
         * @param string $path The site root path
         * @param string $blog_title The new site title
         * @param string $user_name The user's username
         * @param string $user_email The user's email address
         * @param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup()
         */
        function confirm_blog_signup( $domain, $path, $blog_title, $user_name = '', $user_email = '', $meta = array() ) {
                ?>
                <h2 style="padding-top:50px;"><?php printf( __( 'Congratulations! Your new site, %s, is almost ready.' ), "<a href='http://{$domain}{$path}'>{$blog_title}</a>" ) ?></h2>
    
                <p><?php _e( 'But, before you can start using your site, <strong>you must activate it</strong>.' ) ?></p>
                <p><?php printf( __( 'Check your inbox at <strong>%s</strong> and click the link given.' ),  $user_email) ?></p>
                <p><?php _e( 'If you do not activate your site within two days, you will have to sign up again.' ); ?></p>
                <h2><?php _e( 'Still waiting for your email?' ); ?></h2>
                <p>
                        <?php _e( 'If you haven’t received your email yet, there are a number of things you can do:' ) ?>
                        <ul id="noemail-tips">
                                <li><p><strong><?php _e( 'Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control.' ) ?></strong></p></li>
                                <li><p><?php _e( 'Check the junk or spam folder of your email client. Sometime emails wind up there by mistake.' ) ?></p></li>
                                <li><?php printf( __( 'Have you entered your email correctly? You have entered %s, if it’s incorrect, you will not receive your email.' ), $user_email ) ?></li>
                        </ul>
                </p>
                <?php
                /** This action is documented in wp-signup.php */
                do_action( 'signup_finished' );
        }
    
        // Main
        $active_signup = get_site_option( 'registration', 'none' );
        /**
         * Filter the type of site sign-up.
         *
         * @since 3.0.0
         *
         * @param string $active_signup String that returns registration type. The value can be
         *                              'all', 'none', 'blog', or 'user'.
         */
        $active_signup = apply_filters( 'wpmu_active_signup', $active_signup );
    
        // Make the signup type translatable.
        $i18n_signup['all'] = _x('all', 'Multisite active signup type');
        $i18n_signup['none'] = _x('none', 'Multisite active signup type');
        $i18n_signup['blog'] = _x('blog', 'Multisite active signup type');
        $i18n_signup['user'] = _x('user', 'Multisite active signup type');
    
        if ( is_super_admin() )
                echo '<div class="mu_alert">' . sprintf( __( 'Greetings Site Administrator! You are currently allowing “%s” registrations. To change or disable registration go to your <a href="%s">Options page</a>.' ), $i18n_signup[$active_signup], esc_url( network_admin_url( 'settings.php' ) ) ) . '</div>';
    
        $newblogname = isset($_GET['new']) ? strtolower(preg_replace('/^-|-$|[^-a-zA-Z0-9]/', '', $_GET['new'])) : null;
    
        $current_user = wp_get_current_user();
        if ( $active_signup == 'none' ) {
                _e( 'Registration has been disabled.' );
        } elseif ( $active_signup == 'blog' && !is_user_logged_in() ) {
                $login_url = site_url( 'wp-login.php?redirect_to=' . urlencode( network_site_url( 'wp-signup.php' ) ) );
                echo sprintf( __( '<br><br><br>You must first <a href="%s">log in</a>, then you can create a new site.<br><br><br>If you are not already a member, visit our <a href="http://cre8tives.org/join">join page</a> to learn more.<br><br><br><br><br><br><br><br><br>' ), $login_url );
        } else {
                $stage = isset( $_POST['stage'] ) ?  $_POST['stage'] : 'default';
                switch ( $stage ) {
                        case 'validate-user-signup' :
                                if ( $active_signup == 'all' || $_POST[ 'signup_for' ] == 'blog' && $active_signup == 'blog' || $_POST[ 'signup_for' ] == 'user' && $active_signup == 'user' )
                                        validate_user_signup();
                                else
                                        _e( 'User registration has been disabled.' );
                        break;
                        case 'validate-blog-signup':
                                if ( $active_signup == 'all' || $active_signup == 'blog' )
                                        validate_blog_signup();
                                else
                                        _e( 'Site registration has been disabled.' );
                                break;
                        case 'gimmeanotherblog':
                                validate_another_blog_signup();
                                break;
                        case 'default':
                        default :
                                $user_email = isset( $_POST[ 'user_email' ] ) ? $_POST[ 'user_email' ] : '';
                                /**
                                 * Fires when the site sign-up form is sent.
                                 *
                                 * @since 3.0.0
                                 */
                                do_action( 'preprocess_signup_form' );
                                if ( is_user_logged_in() && ( $active_signup == 'all' || $active_signup == 'blog' ) )
                                        signup_another_blog($newblogname);
                                elseif ( is_user_logged_in() == false && ( $active_signup == 'all' || $active_signup == 'user' ) )
                                        signup_user( $newblogname, $user_email );
                                elseif ( is_user_logged_in() == false && ( $active_signup == 'blog' ) )
                                        _e( 'Sorry, new registrations are not allowed at this time.' );
                                else
                                        _e( 'You are logged in already. No need to register again!' );
    
                                if ( $newblogname ) {
                                        $newblog = get_blogaddress_by_name( $newblogname );
    
                                        if ( $active_signup == 'blog' || $active_signup == 'all' )
                                                printf( '<p><em>' . __( 'The site you were looking for, <strong>%s</strong>, does not exist, but you can create it now!' ) . '</em></p>', $newblog );
                                        else
                                                printf( '<p><em>' . __( 'The site you were looking for, <strong>%s</strong>, does not exist.' ) . '</em></p>', $newblog );
                                }
                                break;
                }
        }
        ?>
        </div>
        </div>
    
        <?php
        /**
         * Fires after the sign-up forms, before wp_footer.
         *
         * @since 3.0.0
         */
        do_action( 'after_signup_form' ); ?>
    
        <?php get_footer(); ?>
  • aristath

    Hello again @peter_harris,

    Did you get that off an article somewhere?
    If so, could you post a link to that article?

    You mentioned that this is mostly a copy of the default WP file...
    What file is it?
    Where did you copy this to?
    What did you change?

    Please provise some more details about what you did... I can't just go through this line-by-line and compare it to WP Core in order to understand what you've don, that would take me at least a couple of hours!

    Please advise,
    Ari.

  • peter_harris

    Hey Ari,

    Looks like I found someone on the WPMU forum that posted a link to a tutorial off-site. Here's the forum post:
    https://premium.wpmudev.org/forums/topic/wp-signupphp#post-39782

    And the tutorial:
    https://www.chriswiegman.com/2010/02/using-a-custom-wp-signup-page-with-wordpress-mu/

    It basically involves copying the default wp-signup.php page, throwing it in your theme folder and altering a couple of paths. The main reason for doing this is to keep the site design while customizing all of the messages and text. Not being a coder, I don't think I did anything but alter the design and change various text phrases throughout. Does that help?

    I've got an app that allows me to compare code side by side, which might help, but not sure what I should be looking for.

  • aristath

    Hello again!

    This is the original file from WP 4.1 (I've removed all indentation because it changed on your copy and the diff wasn't properly working): https://gist.github.com/aristath/8271ff26c48a8d6e3603/3770ec9d5e327fb76e857770b0be74daf18f39c7
    And this is your version: https://gist.github.com/aristath/8271ff26c48a8d6e3603/5e88bafc9c0a7edd019fbb54a2492a5dfb77f7a7

    Their diff can be seen here: https://gist.github.com/aristath/8271ff26c48a8d6e3603/revisions

    From what I can tell, you've moved some things around as well...
    and these 2 sections of the code are completely missing:
    1. https://gist.github.com/aristath/8271ff26c48a8d6e3603/3770ec9d5e327fb76e857770b0be74daf18f39c7#file-signup-php-L264-L275
    2. https://gist.github.com/aristath/8271ff26c48a8d6e3603/3770ec9d5e327fb76e857770b0be74daf18f39c7#file-signup-php-L439-L451

    I hope that helps!

    Cheers,
    Ari.

  • peter_harris

    Hey Ari,

    I thought the simpler approach to this would be to start fresh with a 4.1 wp-signup page. So I grabbed that and then went back to the tutorial, changing the paths on the two lines as instructed. However, now the page is coming up blank.

    Do you think there's a better practice/methodology for this? I really want to do major style and text changes for both user and site signups, so when I looked into this before, it seemed the best approach. But now, doesn't seem to be working... :slight_frown:

  • Ivan

    Hi there Peter,

    If the solution provided by Ari works for you, I would suggest sticking with it.

    Otherwise you could enable WP_DEBUG and check the errors you get there, and then fix them.

    To do this, you will need to open the file wp-config.php located in the directory where WordPress is installed and then locate the line with the code
    define('WP_DEBUG', false);
    and change it to

    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);

    That will save the log in a file called debug.log and located in your
    wp-content directory. Also it will not trow errors on the site pages, as this might be bad option if you have visitors on this site.

    Thanks,
    Ivan

  • Michelle Shull

    peter! Hello!

    A customizable sign-up form is a very popular feature request, I know I've seen more than a handful of people who are wanting to customize the sign-up experience. Any methods I know of are a bit hacky and definitely unpredictable, as you've seen with your experiment here. (WordPress: Never Dull.)

    For something like a text change, however, have you considered doing a translation file? I think it may be a bit too unspecific for Ultimate Branding, but you could create a translation of that file to replace the default, without having to do a bunch of template edits over and over again. You won't be able to change the item order, but you could totally change the text.

    Would that work?

    Thanks, peter! Always nice to see you here in the forums. :slight_smile:

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.