Обратите внимание при удалении виджета

Я пытаюсь настроить плагин электронной коммерции 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' );
}

Но все еще получаю уведомление.

0

Решение

Нашел ответ! : 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 Простое исправление, если вы хотите каталог возможности обменного магазина 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]