WordPress — Удаление корзины покупок из меню из функций дочерней темы. Переполнение стека

Я пытаюсь удалить корзину покупок из родительской темы через файл functions.php дочерней темы. Я мог бы легко удалить его из functions.php родителя, но мы все знаем, что это нет-нет. Кроме того, возможность вернуть его должна быть доступна в будущем. К сожалению, родительская тема MAXSTORE была настроена так, что общее удаление из woocommerce не работает. Я должен взломать функции в родительском MAXSTORE. Но я не очень хорош в этом. Может кто-нибудь показать мне, как это сделать?

постскриптум Не беспокойтесь о списке желаний. Конфигурация темы имеет удобный флажок денди для контроля ее видимости;)

Вот эта функция из родительского functions.php

////////////////////////////////////////////////////////////////////
// WooCommerce header cart
////////////////////////////////////////////////////////////////////
if ( !function_exists( 'maxstore_cart_link' ) ) {

function maxstore_cart_link() {
?>
<a class="cart-contents text-right" href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" title="<?php _e( 'View your shopping cart', 'maxstore' ); ?>">
<i class="fa fa-shopping-cart">
<span class="count"><?php echo WC()->cart->get_cart_contents_count(); ?></span>
</i>
<span class="amount-title hidden-sm hidden-xs"><?php echo _e( 'Cart ', 'maxstore' ); ?></span>
<span class="amount-cart"><?php echo wp_kses_data( WC()->cart->get_cart_subtotal() ); ?></span>
</a>
<?php
}

}
if ( !function_exists( 'maxstore_head_wishlist' ) ) {

function maxstore_head_wishlist() {
if ( function_exists( 'YITH_WCWL' ) ) {
$wishlist_url = YITH_WCWL()->get_wishlist_url();
?>
<div class="top-wishlist text-right">
<a href="<?php echo esc_url( $wishlist_url ); ?>" title="Wishlist" data-toggle="tooltip">
<i class="fa fa-heart"><div class="count"><span><?php echo yith_wcwl_count_products(); ?></span></div></i>
</a>
</div>
<?php
}
}

}
add_action( 'wp_ajax_yith_wcwl_update_single_product_list', 'maxstore_head_wishlist' );
add_action( 'wp_ajax_nopriv_yith_wcwl_update_single_product_list', 'maxstore_head_wishlist' );

if ( !function_exists( 'maxstore_header_cart' ) ) {

function maxstore_header_cart() {
?>
<div class="header-cart-inner">
<?php maxstore_cart_link(); ?>
<ul class="site-header-cart menu list-unstyled">
<li>
<?php the_widget( 'WC_Widget_Cart', 'title=' ); ?>
</li>
</ul>
</div>
<?php
if ( get_theme_mod( 'wishlist-top-icon', 0 ) != 0 ) {
echo maxstore_head_wishlist();
}
?>
<?php
}

}
if ( !function_exists( 'maxstore_header_add_to_cart_fragment' ) ) {
add_filter( 'woocommerce_add_to_cart_fragments', 'maxstore_header_add_to_cart_fragment' );

function maxstore_header_add_to_cart_fragment( $fragments ) {
ob_start();

maxstore_cart_link();

$fragments[ 'a.cart-contents' ] = ob_get_clean();

return $fragments;
}

}
////////////////////////////////////////////////////////////////////

РЕДАКТИРОВАТЬ

Будучи разработчиком внешнего интерфейса, я сумел сделать это с помощью CSS. Хорошее решение, но не то, что я хочу, а не то, что я просил, поэтому я не буду отвечать на свой вопрос, вместо этого я опубликую его здесь, чтобы другие могли его рассмотреть.

li#wpmenucartli {
display: none;  //hides the menu cart list item
}

.navbar-inverse .navbar-nav > li:nth-last-child(2) > a:after {
content: '';   //gets rid of the trailing dash on the second to last list item to pretend it is the actual last item
border-right:none;  //if you have a border, this does the same as above
}

заранее спасибо

-1

Решение

2 варианта:

  1. создать плагин … плагины загружаются перед темой, поэтому те, если функция существует, имеет значение true, потому что вы уже определили функцию, функция в теме не будет определена (может вызвать ошибку, если она была) … фактически определяет функции в функциях ваших дочерних тем также будут работать, они загружаются до того, как родительские функции будут.

    function maxstore_head_wishlist(){
    //do nada....
    }
    
  2. удалите зацепки, которые вы можете из дочерней темы, будут работать для второй, не знаю, где подключена первая функция и т. д.

    remove_action( 'wp_ajax_yith_wcwl_update_single_product_list', 'maxstore_head_wishlist' );
    

проблема с вышеприведенной функцией — ее ajax, поэтому нужно рассмотреть и js.

0

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

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

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