我正在尝试将2个自定义用户个人资料字段添加到我正在处理的WordPress网站上。我此时已尝试过互联网上的所有内容,所以我可以在这里联系。
我还需要将这些字段添加到注册页面以与另一个插件集成我已经注册了WordPress原生的所以这只是添加了注册字段的问题。
我已经能够在wp-admin编辑个人资料页面中将这些字段添加到编辑个人资料页面。但我无法将它们添加到注册页面。
这是我迄今为止所做的代码:
$extra_fields = array(
array( 'company_phone', __('Company Phone', 'rc_cucm'), true ),
array( 'personal_phone', __('Personal Phone', 'rc_cucm'), true ),
);
// Use the user_contactmethods to add new fields
add_filter( 'user_contactmethods', 'rc_add_user_contactmethods' );
/**
* Add custom users custom contact methods
*
* @access public
* @since 1.0
* @return void
*/
function rc_add_user_contactmethods( $user_contactmethods ) {
// Get fields
global $extra_fields;
// Display each fields
foreach( $extra_fields as $field ) {
if ( !isset( $contactmethods[ $field[0] ] ) )
$user_contactmethods[ $field[0] ] = $field[1];
}
// Returns the contact methods
return $user_contactmethods;
}
当我为注册页面添加此部分时,我收到错误“Parse error:syntax error,
意外的T_STRING /home/content/e/t/e/eternalreefs/html/affiliates/wp-content/plugins/custom-user-contact-methods/rc-custom-user-contact-methods.php 在第44行“
//This is where the error occur when I try to add fields to the registration page
// Add our fields to the registration process
2
add_action( 'register_form', 'rc_register_form_display_extra_fields' );
3
add_action( 'user_register', 'rc_user_register_save_extra_fields', 100 );
/**
* Show custom fields on registration page
*
* Show custom fields on registration if field third parameter is set to true
*
* @access public
* @since 1.0
* @return void
*/
function rc_register_form_display_extra_fields() {
// Get fields
global $extra_fields;
// Display each field if 3th parameter set to "true"
foreach( $extra_fields as $field ) {
if( $field[2] == true ) {
if( isset( $_POST[ $field[0] ] ) ) { $field_value = $_POST[ $field[0] ]; } else { $field_value = ''; }
?>
<p>
<label for="<?php echo $field[0]; ?>"><?php echo $field[1]; ?><br />
<input type="text" name="<?php echo $field[0]; ?>" id="<?php echo $field[0]; ?>" class="input" value="<?php echo $field_value; ?>" size="20" /></label>
</label>
</p>
<?php
} // endif
} // end foreach
}
/**
* Save field values
*
* @access public
* @since 1.0
* @return void
*/
function rc_user_register_save_extra_fields( $user_id, $password = '', $meta = array() ) {
// Get fields
global $extra_fields;
$userdata = array();
$userdata['ID'] = $user_id;
// Save each field
foreach( $extra_fields as $field ) {
if( $field[2] == true ) {
$userdata[ $field[0] ] = $_POST[ $field[0] ];
} // endif
} // end foreach
$new_user_id = wp_update_user( $userdata );
}
任何对出现问题的见解都会有所帮助我觉得我离我太近了如果我错了就告诉我。
答案 0 :(得分:1)
看看Profile Builder。您可以根据需要添加任意数量的额外自定义用户字段。
答案 1 :(得分:0)
我真的考虑看看一个名为Advanced Custom Fields的插件。让我们为Pages,Posts,Custom Post Types,Attachments甚至用户添加所有类型的自定义字段!