Фрагмент PHP - проблема WordPress в Edge / Firefox - PullRequest
1 голос
/ 14 марта 2019

У меня странная проблема ...

У меня есть фрагмент PHP, который я использую внутри Wordpress и плагин SNIPPETS.

Код работает нормально в Chrome, но по какой-то причине в Edge или Firefox ничего не появляется.

Я просто хочу отобразить другой значок в зависимости от пользовательского поля.

Вот мой код

 function ajax_13xx()

 { $current_user = wp_get_current_user();

 if ( $current_user->s_managed == Yes  ) { 

  return '<div align="right"><img src="abc.com/onswitch20.jpg"> </div>' ;    

 }

  if ( $current_user->s_managed == No  ) { 

  return '<div align="right"><img src="abc.com/offswitch20.jpg"></div>' ;  

  }
}

add_shortcode('managetoggle', 'ajax_13xx');

Я использую Elementor и виджет Shortcode для [managetoggle]

Любые отзывы будут оценены!

С уважением, Nathalie

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Используйте блок else.

if ( $current_user->s_managed == 'Yes'  ) { //make this a string not a constant    
  return '<div align="right"><img src="abc.com/onswitch20.jpg"> </div>' ;        
}else{     
  return '<div align="right"><img src="abc.com/offswitch20.jpg"></div>' ;      
}

Поскольку это логическое значение, мы можем просто использовать else, вы хотите использовать No в другом, потому что мы можем использовать 0 или No или Null Обычно все, что falsy. Это также будет похоже на планочное время (наименьшая возможная единица времени) быстрее, поскольку необходимо проверить только одно условие.

Другой, еще лучший способ написать это так:

function ajax_13xx()
     return '<div align="right"><img src="abc.com/'.(wp_get_current_user()->s_managed == 'Yes' ?  'on' : 'off').'switch20.jpg"> </div>' ;  
}

Тогда вы сохраните свой код немного более СУХИМ (не повторяйте себя)

0 голосов
/ 14 марта 2019

Уже найдено решение ...

Добавлена ​​эта строка ...

if ( NULL == $current_user->s_managed ) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...