У меня есть электронная коммерция, которая генерирует 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». Большое спасибо!