Удалить ссылку на строку списка заказов в администраторе WooCommerce?
Я хочу удалить функцию, когда вы нажимаете на строку заказа в разделе Заказы в администраторе, вы будете отправлены на страницу редактирования этого заказа.
Я знаю, что он добавлен с помощью jQuery в js-файл в плагине WooCommerce. Я нашел фактический код:
/**
* Click a row.
*/
WCOrdersTable.prototype.onRowClick = function( e ) {
if ( $( e.target ).filter( 'a, a *, .no-link, .no-link *, button, button *' ).length ) {
return true;
}
if ( window.getSelection && window.getSelection().toString().length ) {
return true;
}
var $row = $( this ).closest( 'tr' ),
href = $row.find( 'a.order-view' ).attr( 'href' );
if ( href && href.length ) {
e.preventDefault();
if ( e.metaKey || e.ctrlKey ) {
window.open( href, '_blank' );
} else {
window.location = href;
}
}
};
Но я не хочу менять какой-либо код в плагине. И нет никаких крючков js или каких-либо крючков php, которые могли бы управлять этой частью кода.
Поэтому я предполагаю, что вариант состоит в том, чтобы добавить класс no-link
в столбцы в списке? Как мне это сделать? Я ничего не могу найти о том, как это сделать.
2 answers
На основе class-wc-admin-list-table-orders.php
( столбец заказа в строке 173) похоже, что фильтра для изменения разметки нет.
Чтобы обойти это, возможно, вы могли бы добавить скрипт js/jQuery в admin_footer
или с помощью admin_enqueue_scripts
, который либо добавляет необходимый класс(классы), удаляет href или изменяет его на #, либо с помощью какого-либо волшебства делегирования событий сначала запустите свое собственное событие click
и предотвратите WCOrdersTable window.location
.
Здесь вы можете проверить, как добавить класс без ссылок в строку списка заказов woocommerce
Изначальный вопрос, заданный здесь https://github.com/woocommerce/woocommerce/issues/18704
Первоначальный вопрос, на который был задан ответ здесь https://github.com/woocommerce/woocommerce/pull/18708