Удаление корзины покупок из меню из дочерней темы functions.php

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

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

Вот эта функция из родительского 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, потому что вы уже определили функцию, функция в теме не будет определена (может вызвать ошибку, если она была)... фактически определяет функции в ваших дочерних темах также будут работать, они загружаются до того, как родительские функции будут.php

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

    remove_action( 'wp_ajax_yith_wcwl_update_single_product_list', 'maxstore_head_wishlist' );
    

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

Другие вопросы по тегам