私はwp-signup.php
のカスタマイズについてグーグルしましたが、運が悪かったです。これが私が必要とするものです:
私の問題は、wp-signup.php
に支払いフィールドを追加する方法を教えてください。私は本当にワードプレスに慣れていません。どんなガイドやリンクも私にとって大きな助けです。
登録フォームはこんな感じです:
登録フォームには、カスタムフィールド用のさまざまなフックがあります。
この情報源の例が役に立つことを願っています。
/**
* 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'] );
}