PHP скрипт работает только для администраторов, а не для других пользовательских ролей. - PullRequest
0 голосов
/ 21 января 2020

У меня есть электронная коммерция, которая генерирует 2 вида счетов (2 разных шаблона), и у меня есть этот скрипт, который сообщает, какой шаблон должен использоваться ролью пользователя. Сценарий отлично работает с заказами, выполненными администраторами, но не работает с другими ролями пользователей (всегда загружается только шаблон по умолчанию):

function change_template_based_on_user_role($template_name, $template_type, $order_id)
{

// load current user data
$user=wp_get_current_user();

// Load user role and save it in the $user_first_role variable

$roles=(array)$user->roles;
$user_first_role=$roles[0];

// if user role can't be loaded use the standard template 

if (false===$user_first_role) {
return $template_name;
}

    // set the cases 
    switch ($user_first_role) { 

        case 'socio':
        $template_name = 'soci'; 
        break;

        case 'customer':
        $template_name = 'nonsoci'; 
        break;

        case 'ospite':
        $template_name = 'nonsoci'; 
        break;


        case 'administrator':
        $template_name = 'nonsoci';
        break;

    }
    return $template_name; 
}
add_filter( 'wpi_template_name', 'change_template_based_on_user_role', 99, 3 );

может кто-нибудь сказать мне, что делать, чтобы разрешить этот код работать также для всех других пользовательских ролей? Я использовал плагин «User Role Editor» для создания пользовательских ролей «social» и «ospite». Большое спасибо!

...