Я пытаюсь настроить плагин электронной коммерции Exchange. Я хотел бы добавить возможность каталога — убрав кнопки «Добавить в корзину» и «Купить сейчас». Поскольку взамен эти кнопки создаются с помощью их «супервиджета», я подумал, что самый простой способ удалить эти кнопки — удалить супервиджет. Итак, я создал функцию:
if(!function_exists('exchange_catalogue')){
function exchange_catalogue(){
unregister_widget( 'IT_Exchange_Super_Widget' );
}
}
add_filter( 'widgets_init', 'exchange_catalogue');
Но я получаю:
Notice: Undefined index: IT_Exchange_Super_Widget in /wp-includes/widgets.php on line 1356
Я проверил, есть ли такой зарегистрированный виджет:
$widgets = array_keys( $GLOBALS['wp_widget_factory']->widgets );
print '<pre>$widgets = ' . esc_html( var_export( $widgets, TRUE ) ) . '</pre>';
только что добавил это к функции выше, и виджет там (в списке)
$widgets = array (
...
26 => 'IT_Exchange_Super_Widget',
)
Так что, если он существует, и моя функция удаляет его, почему я получаю это уведомление?
О, и я знаю, что есть вариант для этого, но только если вы купите их расширение за ~ $ 200, это добавит дополнение к …
РЕДАКТИРОВАТЬ:
Я пытался с этим:
if (isset( $GLOBALS['wp_widget_factory']->widgets['IT_Exchange_Super_Widget'] )) {
unset( $GLOBALS['wp_widget_factory']->widgets['IT_Exchange_Super_Widget'] );
}
И с
if (isset( $GLOBALS['wp_widget_factory']->widgets['IT_Exchange_Super_Widget'] )) {
unregister_widget( 'IT_Exchange_Super_Widget' );
}
Но все еще получаю уведомление.
Нашел ответ! : D
Я просто положил
if(!function_exists('exchange_catalogue')){
function exchange_catalogue(){
if (isset( $GLOBALS['wp_widget_factory'])) {
$GLOBALS['wp_widget_factory']->widgets['IT_Exchange_Super_Widget'] = null;
}
}
}
Таким образом, виджет установлен, но это ничего. Таким образом, это не показывает: D Простое исправление, если вы хотите каталог возможности обменного магазина 🙂
Других решений пока нет …