pull/15/head
GP_DV 3 months ago
parent 47bd23ad9e
commit 12c4a0ca35
  1. 6
      wp-content/themes/cosmopet/functions.php
  2. 8
      wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css
  3. 8
      wp-content/themes/cosmopet/modules/layout/assets/js/gp-main.js
  4. 11
      wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js
  5. 17
      wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php
  6. 4
      wp-content/themes/cosmopet/templates/header.twig
  7. 2
      wp-content/themes/cosmopet/woocommerce/archive-product.php
  8. 13
      wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-tease.twig
  9. 29
      wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php
  10. 236
      wp-content/themes/cosmopet/woocommerce/cart/cart.php
  11. 57
      wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php
  12. 167
      wp-content/themes/cosmopet/woocommerce/cart/mini-cart.php

@ -501,7 +501,7 @@ function get_products() {
$context['get_category_type'] = isset($_POST['get_category_type']) ? $_POST['get_category_type'] : NULL; $context['get_category_type'] = isset($_POST['get_category_type']) ? $_POST['get_category_type'] : NULL;
// Задаем количество постов для подзагрузки Ajax // Задаем количество постов для подзагрузки Ajax
$posts_per_page = 1; $posts_per_page = 12;
$args = array( $args = array(
'post_type' => 'product', 'post_type' => 'product',
@ -546,7 +546,9 @@ function get_products() {
$context['count'] = count(Timber::get_posts($count_args)); $context['count'] = count(Timber::get_posts($count_args));
if ($context['count'] <= $context['get_page'] * 1) $context['ended'] = true; if ($context['count'] <= $context['get_page'] * $posts_per_page) {
$context['ended'] = true;
}
Timber::render( 'woocommerce/archive-product/archive-product-ajaxload.twig', $context ); Timber::render( 'woocommerce/archive-product/archive-product-ajaxload.twig', $context );

@ -732,7 +732,8 @@ width: 0px;
.mini-profile__button--counter { .mini-profile__button--counter {
display: flex; display: flex
;
flex-direction: row; flex-direction: row;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -742,10 +743,9 @@ width: 0px;
border-radius: 10px; border-radius: 10px;
width: 16px; width: 16px;
height: 16px; height: 16px;
border-radius: 50%; border-radius: 50%;
top: 6px; right: 30px;
right: 6px; bottom: 20px;
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
font-size: 9px; font-size: 9px;

@ -22,13 +22,17 @@ jQuery(document).ready(function ($) {
product.find('.state__block').removeClass('expanded').css('height', '0'); product.find('.state__block').removeClass('expanded').css('height', '0');
product.find('.add_to_cart_button').detach(); product.find('.add_to_cart_button').detach();
product.find('.product-item-overlay__button').prepend('<a href="?add-to-cart=' + id + '" class="ajax_add_to_cart add_to_cart_button button button--gradient button--base button--100-perc" data-product_id="'+id+'">Добавить в корзину</a>'); product.find('.product-item-overlay__button').prepend('<a href="?add-to-cart=' + id + '" data-quantity="' + qty +'" class="ajax_add_to_cart add_to_cart_button button button--gradient button--base button--100-perc" data-product_id="'+id+'">Добавить в корзину</a>');
}) })
$('.product__main').on('click', '.counter__button', function(evt) { $('.product__main').on('click', '.counter__button', function(evt) {
evt.preventDefault(); evt.preventDefault();
let product = $(this).closest('.product__item'); let product = $(this).closest('.product__item');
let price = parseFloat(product.find('.select__state').data('product_price')); let price = parseFloat(product.find('.select__state').data('product_price'));
if (!price){
price = parseFloat(product.find('.product-item__price p').html());
}
let qty = product.find('.counter__input'); let qty = product.find('.counter__input');
if ($(this).hasClass('minus') && parseInt(qty.val()) >= 2) { if ($(this).hasClass('minus') && parseInt(qty.val()) >= 2) {
@ -38,7 +42,7 @@ jQuery(document).ready(function ($) {
qty.val(parseInt(qty.val()) + 1); qty.val(parseInt(qty.val()) + 1);
} }
} }
product.find('.product-item-overlay__button a').attr('data-quantity', qty.val())
product.find('.product-item-overlay__price').html(price * qty.val() + ' '); product.find('.product-item-overlay__price').html(price * qty.val() + ' ');
}) })

@ -266,11 +266,18 @@ jQuery(document).ready(function($) {
if (response.success) { if (response.success) {
$('#modal-basket-content').html(response.data.contents); $('#modal-basket-content').html(response.data.contents);
$('.modal-block-price__price').html(response.data.total); $('.modal-block-price__price').html(response.data.total);
$('.cart-count').text(response.data.count); $('.mini-profile__button--counter').text(response.data.count);
if(response.data.count > 0){
$('.mini-profile__button--counter').removeClass('disabled')
}
else(
$('.mini-profile__button--counter').addClass('disabled')
)
} }
} }
}); });
} }
}); });

@ -1,8 +1,13 @@
<?php <?php
add_filter('woocommerce_get_script_data', 'add_custom_woocommerce_params', 10, 2); // add_filter('woocommerce_get_script_data', 'add_custom_woocommerce_params', 10, 2);
function add_custom_woocommerce_params($params, $handle) { // function add_custom_woocommerce_params($params, $handle) {
// Добавляем только для скрипта корзины // // Добавляем только для скрипта корзины
$params['i18n_restore_item'] = pll__('Восстановить'); // $params['i18n_restore_item'] = pll__('Восстановить');
return $params; // return $params;
} // }
add_filter('timber/context', function($context) {
$context['cart_count'] = WC()->cart->get_cart_contents_count();
return $context;
});

@ -232,8 +232,8 @@
<button class="mini-profile__button basket-open" data-modal-target=".modal__basket"> <button class="mini-profile__button basket-open" data-modal-target=".modal__basket">
<img src="https://cosmopet.ru/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/basket.svg" alt="" class="mini-profile__icon black"> <img src="https://cosmopet.ru/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/basket.svg" alt="" class="mini-profile__icon black">
<img src="https://cosmopet.ru/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/basket-w.svg" alt="" class="mini-profile__icon white"> <img src="https://cosmopet.ru/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/basket-w.svg" alt="" class="mini-profile__icon white">
<div class="mini-profile__button--counter disabled"> <div class="mini-profile__button--counter {{ cart_count == 0 ? 'disabled' : '' }}">
0 {{ cart_count }}
</div> </div>
</button> </button>
</div> </div>

@ -13,7 +13,7 @@
$context['criteria_for_new_product'] = date('Y-m-d', strtotime('-30 days')); $context['criteria_for_new_product'] = date('Y-m-d', strtotime('-30 days'));
// Задаем количество постов для подзагрузки Ajax // Задаем количество постов для подзагрузки Ajax
$context['posts_per_page'] = 1; $context['posts_per_page'] = 12;
$queried_object = get_queried_object(); $queried_object = get_queried_object();

@ -6,13 +6,13 @@
<div class="product__item"> <div class="product__item">
<div class="product-item__label"> <div class="product-item__label">
{% if post.date('Y-m-d') >= criteria_for_new_product %} {% if post.date('Y-m-d') >= criteria_for_new_product %}
<span href="#" class="product-item-label__tag product-item-label__tag--new"> <span class="product-item-label__tag product-item-label__tag--new">
{{ function('pll_e', 'Новинка') }} {{ function('pll_e', 'Новинка') }}
</span> </span>
{% endif %} {% endif %}
{% if post._sale_price %} {% if post._sale_price %}
<span href="#" class="product-item-label__tag product-item-label__tag--sale"> <span class="product-item-label__tag product-item-label__tag--sale">
{{ function('pll_e', 'Распродажа %') }} {{ function('pll_e', 'Распродажа %') }}
</span> </span>
{% endif %} {% endif %}
@ -53,14 +53,16 @@
<form class="product-item__form" method="post" action="/send-telegram.php"> <form class="product-item__form" method="post" action="/send-telegram.php">
<div class="product-item-overlay__input-block"> <div class="product-item-overlay__input-block">
{% set collection = fn('wc_get_product_terms', post.id, 'pa_collection') %}
{% if collection %}
<div class="product-item-overlay__field"> <div class="product-item-overlay__field">
<p class="product-item-overlay-field__title">Объем</p> <p class="product-item-overlay-field__title">{{ fn('pll_e', 'Объем') }}</p>
<div class="select"> <div class="select">
<input type="text" class="select__state" value="{{ cur_weight }}" readonly data-product_id="{{post.id}}" data-product_price="{{ post._price() }}"> <input type="text" class="select__state" value="{{ cur_weight }}" readonly data-product_id="{{post.id}}" data-product_price="{{ post._price() }}">
<div class="state__block"> <div class="state__block">
<ul class="state__content"> <ul class="state__content">
{% set collection = fn('wc_get_product_terms', post.id, 'pa_collection') %}
{% for option in collection %} {% for option in collection %}
{% set term = get_term(option) %} {% set term = get_term(option) %}
{% set siblings = function('get_collection_siblings' , term.id) %} {% set siblings = function('get_collection_siblings' , term.id) %}
@ -84,8 +86,9 @@
</div> </div>
</div> </div>
</div> </div>
{% endif %}
<div class="product-item-overlay__field"> <div class="product-item-overlay__field">
<p class="product-item-overlay-field__title">Количество</p> <p class="product-item-overlay-field__title">{{ fn('pll_e', 'Количество') }}</p>
<div class="counter"> <div class="counter">
<button class="counter__button minus"> <button class="counter__button minus">

@ -1,29 +0,0 @@
<?php
/**
* Cart item data (when outputting non-flat)
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cart-item-data.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.4.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<ul class="variation">
<?php foreach ( $item_data as $data ) : ?>
<li class="variation-<?php echo sanitize_html_class( $data['key'] ); ?>">
<span class="item-variation-name"><?php echo wp_kses_post( $data['key'] ); ?>:</span>
<span class="item-variation-value"><?php echo wp_kses_post( wpautop( $data['display'] ) ); ?></span>
</li>
<?php endforeach; ?>
</ul>

@ -1,236 +0,0 @@
<?php
/**
* Cart Page
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cart.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 7.9.0
*/
wp_enqueue_style( 'gp-cart', get_template_directory_uri() . '/gp-include/assets/front-page/css/gp-cart.css' );
defined( 'ABSPATH' ) || exit;
$update_cart_btn_classes = '';
if ( function_exists( 'wc_wp_theme_get_element_class_name' ) ) {
$update_cart_btn_classes .= ' ' . wc_wp_theme_get_element_class_name( 'button' );
}
if ( woodmart_get_opt( 'update_cart_quantity_change' ) ) {
$update_cart_btn_classes .= ' wd-hide';
}
?>
<div class="woocommerce cart-content-wrapper row">
<?php do_action( 'woocommerce_before_cart' ); ?>
<form class="woocommerce-cart-form cart-data-form col-12 col-lg-7 col-xl-8" action="<?php echo esc_url( wc_get_cart_url() ); ?>" method="post">
<div class="cart-table-section">
<?php do_action( 'woocommerce_before_cart_table' ); ?>
<table class="shop_table shop_table_responsive cart woocommerce-cart-form__contents" cellspacing="0">
<thead>
<tr>
<th class="product-remove"><span class="screen-reader-text"><?php esc_html_e( 'Remove item', 'woocommerce' ); ?></span></th>
<th class="product-thumbnail"><span class="screen-reader-text"><?php esc_html_e( 'Thumbnail image', 'woocommerce' ); ?></span>;</th>
<th class="product-name"><?php esc_html_e( 'Product', 'woocommerce' ); ?></th>
<?php if ( woodmart_get_opt( 'show_sku_in_cart' ) ) : ?>
<th class="product-sku"><?php esc_html_e( 'SKU', 'woocommerce' ); ?></th>
<?php endif; ?>
<th class="product-price"><?php esc_html_e( 'Price', 'woocommerce' ); ?></th>
<th class="product-quantity"><?php esc_html_e( 'Quantity', 'woocommerce' ); ?></th>
<th class="product-subtotal"><?php esc_html_e( 'Subtotal', 'woocommerce' ); ?></th>
</tr>
</thead>
<tbody>
<?php do_action( 'woocommerce_before_cart_contents' ); ?>
<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
$product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
?>
<tr class="woocommerce-cart-form__cart-item <?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
<td class="product-remove">
<?php
echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'woocommerce_cart_item_remove_link',
sprintf(
'<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">&times;</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
/* translators: %s is the product name */
esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
esc_attr( $product_id ),
esc_attr( $_product->get_sku() )
),
$cart_item_key
);
?>
</td>
<td class="product-thumbnail">
<?php
if ( ! $product_permalink ) {
echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
} else {
printf( '<a href="%s">%s</a>', esc_url( $product_permalink ), apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ) );
}
?>
</td>
<td class="product-name" data-title="<?php esc_attr_e( 'Product', 'woocommerce' ); ?>">
<?php
if ( ! $product_permalink ) {
echo wp_kses_post( $product_name . '&nbsp;' );
} else {
/**
* This filter is documented above.
*
* @since 7.8.0
* @param string $product_url URL the product in the cart.
*/
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
}
do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
// Meta data
echo wc_get_formatted_cart_item_data( $cart_item );
// Backorder notification
if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__( 'Available on backorder', 'woocommerce' ) . '</p>', $product_id ) );
}
?>
</td>
<?php if ( woodmart_get_opt( 'show_sku_in_cart' ) ) : ?>
<td class="product-sku" data-title="<?php esc_attr_e( 'SKU', 'woocommerce' ); ?>">
<?php if ( $_product->get_sku() ) : ?>
<?php echo esc_html( $_product->get_sku() ); ?>
<?php else : ?>
<?php esc_html_e( 'N/A', 'woocommerce' ); ?>
<?php endif; ?>
</td>
<?php endif; ?>
<td class="product-price" data-title="<?php esc_attr_e( 'Price', 'woocommerce' ); ?>">
<?php
echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
?>
</td>
<td class="product-quantity" data-title="<?php esc_attr_e( 'Quantity', 'woocommerce' ); ?>">
<?php
if ( $_product->is_sold_individually() ) {
$min_quantity = 1;
$max_quantity = 1;
} else {
$min_quantity = 0;
$max_quantity = $_product->get_max_purchase_quantity();
}
$product_quantity = woocommerce_quantity_input(
array(
'input_name' => "cart[{$cart_item_key}][qty]",
'input_value' => $cart_item['quantity'],
'max_value' => $max_quantity,
'min_value' => $min_quantity,
'product_name' => $product_name,
),
$_product,
false
);
echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item );
?>
</td>
<td class="product-subtotal" data-title="<?php esc_attr_e( 'Subtotal', 'woocommerce' ); ?>">
<?php
echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key );
?>
</td>
</tr>
<?php
}
}
?>
<?php do_action( 'woocommerce_cart_contents' ); ?>
<?php do_action( 'woocommerce_after_cart_contents' ); ?>
</tbody>
</table>
<div class="row cart-actions">
<div class="col-12 order-last order-md-first col-md">
<?php if ( wc_coupons_enabled() ) { ?>
<div class="coupon">
<label for="coupon_code" class="screen-reader-text">
<?php esc_html_e( 'Coupon:', 'woocommerce' ); ?>
</label>
<input type="text" name="coupon_code" class="input-text" id="coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" />
<button type="submit" class="button<?php echo esc_attr( function_exists( 'wc_wp_theme_get_element_class_name' ) && wc_wp_theme_get_element_class_name( 'button' ) ? ' ' . wc_wp_theme_get_element_class_name( 'button' ) : '' ); ?>" name="apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>">
<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>
</button>
<?php do_action( 'woocommerce_cart_coupon' ); ?>
</div>
<?php } ?>
</div>
<div class="col-12 order-first order-md-last col-md-auto">
<button type="submit" class="button<?php echo esc_attr( $update_cart_btn_classes ); ?>" name="update_cart" value="<?php esc_attr_e( 'Update cart', 'woocommerce' ); ?>">
<?php esc_html_e( 'Update cart', 'woocommerce' ); ?>
</button>
<?php do_action( 'woocommerce_cart_actions' ); ?>
<?php wp_nonce_field( 'woocommerce-cart', 'woocommerce-cart-nonce' ); ?>
</div>
</div>
</div>
</form>
<div class="cart-totals-section col-12 col-lg-5 col-xl-4 cart-collaterals">
<?php woocommerce_cart_totals(); ?>
</div>
</div>
<?php do_action( 'woocommerce_after_cart_table' ); ?>
<div class="cart-collaterals">
<?php
/**
* Cart collaterals hook.
*
* @hooked woocommerce_cross_sell_display
* @hooked woocommerce_cart_totals - 10
*/
do_action( 'woocommerce_cart_collaterals' );
?>
</div>
<?php do_action( 'woocommerce_after_cart' ); ?>

@ -1,57 +0,0 @@
<?php
/**
* Cross-sells
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cross-sells.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 4.4.0
*/
defined( 'ABSPATH' ) || exit;
$heading = apply_filters( 'woocommerce_product_cross_sells_products_heading', __( 'You may be interested in&hellip;', 'woocommerce' ) );
if ( $cross_sells ) : ?>
<div class="cross-sells">
<?php if ( $heading ) : ?>
<h3 class="title slider-title"><span><?php echo esc_html( $heading ); ?></span></h3>
<?php endif; ?>
<?php
woodmart_enqueue_product_loop_styles( woodmart_get_opt( 'products_hover' ) );
$slider_args = array(
'slides_per_view' => apply_filters( 'woodmart_cross_sells_products_per_view', 4 ),
'hide_pagination_control' => true,
'hide_prev_next_buttons' => true,
'img_size' => 'woocommerce_thumbnail',
'custom_sizes' => apply_filters( 'woodmart_cross_sells_custom_sizes', false ),
'product_quantity' => woodmart_get_opt( 'product_quantity' ),
'products_bordered_grid' => woodmart_get_opt( 'products_bordered_grid' ),
'products_bordered_grid_style' => woodmart_get_opt( 'products_bordered_grid_style' ),
'products_with_background' => woodmart_get_opt( 'products_with_background' ),
'products_shadow' => woodmart_get_opt( 'products_shadow' ),
'products_color_scheme' => woodmart_get_opt( 'products_color_scheme' ),
);
woodmart_set_loop_prop( 'products_view', 'carousel' );
echo woodmart_generate_posts_slider( $slider_args, false, $cross_sells );
?>
</div>
<?php endif;
wp_reset_postdata();

@ -1,167 +0,0 @@
<?php
/**
* Mini-cart
*
* Contains the markup for the mini-cart, used by the cart widget.
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/mini-cart.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 7.9.0
*/
defined( 'ABSPATH' ) || exit;
$items_to_show = apply_filters( 'woodmart_mini_cart_items_to_show', 30 );
do_action( 'woocommerce_before_mini_cart' ); ?>
<div class="shopping-cart-widget-body wd-scroll">
<div class="wd-scroll-content">
<?php if ( ! WC()->cart->is_empty() ) : ?>
<ul class="cart_list product_list_widget woocommerce-mini-cart <?php echo esc_attr( $args['list_class'] ); ?>">
<?php
do_action( 'woocommerce_before_mini_cart_contents' );
$_i = 0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_i++;
if( $_i > $items_to_show ) break;
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
/**
* This filter is documented in woocommerce/templates/cart/cart.php.
*
* @param string $product_name Name of the product in the cart.
*/
$product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
$product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
?>
<li class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>" data-key="<?php echo esc_attr( $cart_item_key ); ?>">
<a href="<?php echo esc_url( $product_permalink ); ?>" class="cart-item-link wd-fill"><?php esc_html_e('Show', 'woocommerce'); ?></a>
<?php
echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
'<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s">&times;</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
/* translators: %s is the product name */
esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
esc_attr( $product_id ),
esc_attr( $cart_item_key ),
esc_attr( $_product->get_sku() )
), $cart_item_key );
?>
<?php if ( empty( $product_permalink ) ) : ?>
<?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
<?php else : ?>
<a href="<?php echo esc_url( $product_permalink ); ?>" class="cart-item-image">
<?php echo apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); ?>
</a>
<?php endif; ?>
<div class="cart-info">
<span class="wd-entities-title">
<?php echo $product_name; ?>
</span>
<?php if ( woodmart_get_opt( 'show_sku_in_mini_cart' ) ) : ?>
<div class="wd-product-sku">
<span class="wd-label">
<?php esc_html_e( 'SKU:', 'woodmart' ); ?>
</span>
<span>
<?php if ( $_product->get_sku() ) : ?>
<?php echo esc_html( $_product->get_sku() ); ?>
<?php else : ?>
<?php esc_html_e( 'N/A', 'woocommerce' ); ?>
<?php endif; ?>
</span>
</div>
<?php endif; ?>
<?php
echo wc_get_formatted_cart_item_data( $cart_item );
?>
<?php
if ( ! $_product->is_sold_individually() && $_product->is_purchasable() && woodmart_get_opt( 'mini_cart_quantity' ) && apply_filters( 'woodmart_show_widget_cart_item_quantity', true, $cart_item_key ) ) {
woocommerce_quantity_input(
array(
'input_value' => $cart_item['quantity'],
'min_value' => 0,
'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(),
),
$_product
);
}
?>
<?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); ?>
</div>
</li>
<?php
}
}
do_action( 'woocommerce_mini_cart_contents' );
?>
</ul><!-- end product list -->
<?php else : ?>
<div class="wd-empty-mini-cart">
<p class="woocommerce-mini-cart__empty-message empty title"><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></p>
<?php if ( wc_get_page_id( 'shop' ) > 0 ) : ?>
<a class="btn btn-size-small btn-color-primary wc-backward" href="<?php echo esc_url( apply_filters( 'woocommerce_return_to_shop_redirect', wc_get_page_permalink( 'shop' ) ) ); ?>">
<?php esc_html_e( 'Return To Shop', 'woodmart' ) ?>
</a>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>
<div class="shopping-cart-widget-footer<?php echo ( WC()->cart->is_empty() ? ' wd-cart-empty' : '' ); ?>">
<?php if ( ! WC()->cart->is_empty() ) : ?>
<?php if ( function_exists( 'WC' ) && version_compare( WC()->version, '3.7.0', '<' ) ) : ?>
<p class="woocommerce-mini-cart__total total"><strong><?php esc_html_e( 'Subtotal', 'woocommerce' ); ?>:</strong> <?php echo WC()->cart->get_cart_subtotal(); ?></p>
<?php else : ?>
<p class="woocommerce-mini-cart__total total">
<?php
/**
* Woocommerce_widget_shopping_cart_total hook.
*
* @hooked woocommerce_widget_shopping_cart_subtotal - 10
*/
do_action( 'woocommerce_widget_shopping_cart_total' );
?>
</p>
<?php endif; ?>
<?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>
<p class="woocommerce-mini-cart__buttons buttons"><?php do_action( 'woocommerce_widget_shopping_cart_buttons' ); ?></p>
<?php do_action( 'woocommerce_widget_shopping_cart_after_buttons' ); ?>
<?php endif; ?>
<?php do_action( 'woocommerce_after_mini_cart' ); ?>
</div>
Loading…
Cancel
Save