66 lines
2.8 KiB
PHP
66 lines
2.8 KiB
PHP
<?php
|
||
/**
|
||
* WP-Admin Profile edit.
|
||
*
|
||
* @package Jetpack
|
||
*/
|
||
|
||
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
|
||
|
||
/**
|
||
* Hides profile fields for WordPress.com connected users.
|
||
*
|
||
* @param WP_User $user The current WP_User object.
|
||
*/
|
||
function jetpack_masterbar_hide_profile_fields( $user ) {
|
||
$connection_manager = new Connection_Manager( 'jetpack' );
|
||
if ( ! $connection_manager->is_user_connected( $user->ID ) ) {
|
||
// If this is a local user, show the default UX.
|
||
return;
|
||
}
|
||
$wp_kses_rule = array(
|
||
'a' => array(
|
||
'href' => array(),
|
||
'rel' => array(),
|
||
'target' => array(),
|
||
),
|
||
);
|
||
// Since there is no hook for altering profile fields, we will use CSS and JS.
|
||
$name_info_wpcom_link_message = sprintf(
|
||
/* translators: 1 link */
|
||
__( 'WordPress.com users can change their profile’s basic details ( i.e., First Name, Last Name, Display Name, About ) in <a href="%1$s" target="_blank" rel="noopener noreferrer">WordPress.com Profile settings.</a>', 'jetpack' ),
|
||
'https://wordpress.com/me'
|
||
);
|
||
$contact_info_wpcom_link_message = sprintf(
|
||
/* translators: 1 link */
|
||
__( 'WordPress.com users can change their profile’s email & website address in <a href="%1$s" target="_blank" rel="noopener noreferrer">WordPress.com Account settings.</a>', 'jetpack' ),
|
||
'https://wordpress.com/me/account'
|
||
);
|
||
?>
|
||
<script>
|
||
document.addEventListener( 'DOMContentLoaded', function() {
|
||
// Field to be hidden.
|
||
var fieldsToHide = '.user-first-name-wrap, .user-last-name-wrap, .user-nickname-wrap, .user-display-name-wrap, .user-email-wrap, .user-url-wrap, .user-description-wrap';
|
||
document.querySelectorAll( fieldsToHide ).forEach( element => element.classList.add( 'hidden' ) );
|
||
|
||
// Name Info.
|
||
var nameInfo = document.querySelector( '.user-first-name-wrap' ).closest( 'table' );
|
||
var nameInfoWpcomLink = document.createElement( 'div' );
|
||
nameInfoWpcomLink.className = 'notice inline notice-large notice-warning';
|
||
nameInfoWpcomLink.innerHTML = '<?php echo wp_kses( $name_info_wpcom_link_message, $wp_kses_rule ); ?>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||
nameInfo.parentNode.insertBefore( nameInfoWpcomLink, nameInfo.nextSibling );
|
||
|
||
// Contact Info.
|
||
var contactInfo = document.querySelector( '.user-email-wrap' ).closest( 'table' );
|
||
var contactInfoWpcomLink = document.createElement( 'div' );
|
||
contactInfoWpcomLink.className = 'notice inline notice-large notice-warning';
|
||
contactInfoWpcomLink.innerHTML = '<?php echo wp_kses( $contact_info_wpcom_link_message, $wp_kses_rule ); ?>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||
contactInfo.parentNode.insertBefore( contactInfoWpcomLink, contactInfo.nextSibling );
|
||
});
|
||
|
||
</script>
|
||
<?php
|
||
}
|
||
|
||
add_action( 'personal_options', 'jetpack_masterbar_hide_profile_fields' );
|