web-dev-qa-db-ja.com

マルチサイトネットワーク用にwp-signup.phpをカスタマイズするにはどうすればいいですか?

私はwp-signup.phpのカスタマイズについてグーグルしましたが、運が悪かったです。これが私が必要とするものです:

  1. ユーザー登録.
  2. 登録プロセスの間に、ユーザーは最初に支払います(Paypalまたはクレジットカードのように)。
  3. ユーザーが支払いに成功したらサブドメインを作成します。

私の問題は、wp-signup.phpに支払いフィールドを追加する方法を教えてください。私は本当にワードプレスに慣れていません。どんなガイドやリンクも私にとって大きな助けです。

登録フォームはこんな感じです:

  • username
  • 電子メールアドレス
  • サイトをあげる
  • 支払い
  • 登録ボタン
3
jayellos

登録フォームには、カスタムフィールド用のさまざまなフックがあります。

この情報源の例が役に立つことを願っています。

    /**
     * Add custom field to registration form
     */
    add_action( 'register_form', 'fb_show_first_name_field' );
    add_action( 'register_post', 'fb_check_fields', 10, 3 );
    add_action( 'user_register', 'fb_register_extra_fields' );

    function fb_show_first_name_field() {
    ?>
        <p>
            <label>Twitter<br/>
                <input id="Twitter" type="text" tabindex="30" size="25" value="<?php echo $_POST['Twitter']; ?>" name="Twitter" />
            </label>
        </p>
    <?php
    }

    function fb_check_fields ( $login, $email, $errors ) {
        global $Twitter;

        if ( '' === $_POST['Twitter'] )
            $errors->add( 'empty_realname', "<strong>ERROR</strong>: Please Enter your Twitter handle" );
        else
            $Twitter = $_POST['Twitter'];

    }

    function fb_register_extra_fields ( $user_id, $password = "", $meta = array() ) {

        update_user_meta( $user_id, 'Twitter', $_POST['Twitter'] );
    }

フィールドの内容を変更したり表示したりするために、rpofileページにフィールドを追加することも便利です。

    /**
     * Add additional custom field
     */
    add_action( 'show_user_profile', 'fb_show_extra_profile_fields' );
    add_action( 'edit_user_profile', 'fb_show_extra_profile_fields' );

    function fb_show_extra_profile_fields( $user ) {
    ?>
        <h3>Extra profile information</h3>
        <table class="form-table">
            <tr>
                <th><label for="Twitter">Twitter</label></th>
                <td>
                    <input type="text" name="Twitter" id="Twitter" value="<?php echo esc_attr( get_the_author_meta( 'Twitter', $user->ID ) ); ?>" class="regular-text" /><br />
                    <span class="description">Please enter your Twitter username.</span>
                </td>
            </tr>
        </table>
    <?php
    }

    add_action( 'personal_options_update',  'fb_save_extra_profile_fields' );
    add_action( 'edit_user_profile_update', 'fb_save_extra_profile_fields' );
    function fb_save_extra_profile_fields( $user_id ) {

        if ( ! current_user_can( 'edit_user', $user_id ) )
            return FALSE;

        /* Copy and paste this line for additional fields. Make sure to change 'Twitter' to the field ID. */
        update_user_meta( $user_id, 'Twitter', $_POST['Twitter'] );
    }
4
bueltge