Remover o nome do site do formulário de registro – Multisite

Como você remove o campo ‘Site name’ no formulário de registro para um multisite?

Quando os usuários se inscrevem, eu gostaria que eles inserissem o ‘nome do usuário’, ’email’ e ‘nome do domínio’. Tentei removê-lo com CSS, mas não posso porque é um campo obrigatório (deve ser preenchido).

Se alguém quiser saber por que preciso fazer isso, é porque o meu multisite foi projetado para um uso específico e não usa títulos de sites – há apenas um site por usuário e apenas um usuário administrador por site permitido. Cada site exibe o nome de exibição do administrador do usuário na parte superior para cada site em vez do título do site.

Qualquer ajuda foi apreciada.

Solutions Collecting From Web of "Remover o nome do site do formulário de registro – Multisite"

Se você olhar para o código fonte da página ‘Adicionar Novo Site’, você pode ver que o WordPress não fornece um gancho para este propósito. Claro, seria possível adicionar um gancho, mas geralmente é uma má prática editar o núcleo do WordPress.

No entanto, uma vez apresentada e todas as informações estão presentes, a página chama a function wpmu_create_blog() . Nesta function, há um gancho chamado, ou seja, a ação wpmu_new_blog :

 do_action( 'wpmu_new_blog', $blog_id, $user_id, $domain, $path, $site_id, $meta ); 

Neste ponto, o blog já foi criado. No entanto, ainda podemos detectar se um campo foi enviado englobando essa ação e salvando-a no database. Adicionamos o seguinte ao nosso arquivo de plugin (ou modelo):

 function add_new_blog_field($blog_id, $user_id, $domain, $path, $site_id, $meta) { // Make sure the user can perform this action and the request came from the correct page. switch_to_blog($blog_id); // Use a default value here if the field was not submitted. $new_field_value = 'default'; if ( !empty($_POST['blog']['new_field']) ) $new_field_value = $_POST['blog']['new_field']; // save option into the database update_option( 'new_field', $new_field_value); restore_current_blog(); } add_action( 'wpmu_new_blog', 'add_new_blog_field' ); 

Quanto a exibir o campo na página, você pode usar uma abordagem de Javascript. Você adiciona um arquivo de Javascript, unicamente à página ‘Adicionar Novo Site’ e onLoad da página que você inseriu o campo na posição correta na página. Você deve adicionar um campo de input com o nome ‘blog [new_field]’. Criamos o seguinte arquivo Javascript que, uma vez carregado, adiciona um novo campo à página ‘Adicionar Novo Site’:

 (function($) { $(document).ready(function() { $('').append( $('New field') ).append( $('').append( $('') ).append( $('

Explanation about your new field

') ) ).insertAfter('#wpbody-content table tr:eq(2)'); }); })(jQuery);

Agora, o único fato a ser feito é include este arquivo na página ‘Adicionar Novo Site’, adicionando isso ao seu arquivo de plugin:

 // Only add the script for the page site-new.php (the page hook). add_action( "admin_print_scripts-site-new.php", 'my_admin_scripts' ); function my_admin_scripts() { wp_register_script('yourScript', plugins_url('js/yourScript.js', __FILE__)); wp_enqueue_script('yourScript'); } 

Outra sugestão pode ser, dependendo das suas necessidades: adicione um campo de input na sua página de configurações gerais usando add_settings_field , de modo que um usuário possa editá-lo mais tarde (e talvez apenas se for a configuração padrão para este campo). Uma abordagem “você não pode mudar este campo mais tarde”.