Botão para usuários atualizar sua function de usuário + Botão para mostrar a function de usuário atual!

Tenho um blog com diferentes funções de usuário e, portanto, diferentes níveis de permissão do usuário.

De vez em quando, eu gostaria de dar aos meus usuários registrados a possibilidade de atualizar sua function de usuário atual (” assinante ” para ” premiummember “) de graça, mas não quero fazer isso para todos os usuários que querem ser atualizados manualmente.

Eu pensei que seria bom ter um pequeno plugin (executando via shortcode ( [upgrade_user_role] + [request_user_role] ) que permite que meus usuários atualizem sua function de usuário com um simples clique de um botão e, além disso, também lhes dá a oportunidade de solicitar seu status de function de usuário atual.

Não sei como codificar isso. Mas, pelo menos, posso tentar e explicar como o plugin deve funcionar.

  1. No começo, ele deve verificar se o usuário já está logado e, em caso afirmativo, deve carregar o arquivo CSS com o layout do botão.
  2. Agora que o usuário está logado, eles devem ser capazes de atualizar ou solicitar sua function de usuário atual simplesmente clicando em um dos botões.

Eu realmente tentei codificar isso sozinho, mas não consegui fazê-lo funcionar corretamente.

Para a verificação de login, tentei usar a function is_user_logged_in() em combinação com uma consulta simples se. Para as funções de atualização e solicitação de funções, tentei usar:

 $current_user = wp_get_current_user(); 

Assim como

 $current_user_id = $current_user->ID; 

Em combinação com

 update_metadata('user', $current_user_id, 'role', '$current_role) 

Editar: tentei codificar um pequeno plugin com o seguinte código abaixo, mas não consigo conseguir que o formulário seja exibido ao usar a configuração [show_upgrade_to_premium] em uma publicação ou site.

 function upgrade_to_premium() { if(is_user_logged_in()) { if(is_page('upgrade-to-premium')) { global $load_css; $load_css = true; $output = upgrade_to_premium_form(); $current_user = wp_get_current_user(); if( $current_user->roles[0] == "subscriber" || $current_user->roles[0] == "premium" ) { $user_id = $current_user->id; $role = $current_user->roles[0]; if( $_POST['role']){ if( $_POST['role'] == $role ) { echo "Sorry, you are already " . $role . "!"; } else { $role = $_POST['role']; $userdata = array(); $userdata['ID'] = $user_id; $userdata['role'] = $role; wp_update_user($userdata); echo "Your user type has been changed! You are now " . $role . "!"; } } } } } else { } return $output; } add_shortcode('show_upgrade_to_premium', 'upgrade_to_premium'); function upgrade_to_premium_form() { ob_start(); ?> 

Please select a role:
Subscriber Premium
<?php return ob_get_clean(); } function register_css() { wp_register_style('form-css', plugin_dir_url( __FILE__ ) . '/css/forms.css'); } add_action('init', 'register_css'); function print_css() { global $load_css; if ( ! $load_css ) return; wp_print_styles('form-css'); } add_action('wp_footer', 'print_css');

Solutions Collecting From Web of "Botão para usuários atualizar sua function de usuário + Botão para mostrar a function de usuário atual!"