' . $template_file . '' ), '1.0.0' ); // phpcs:ignore return; } include $template_file; } /** * Display sidebar cart toggle button. * * @since 1.0.0 */ function addonify_floating_cart_floating_button_template() { if ( (int) addonify_floating_cart_get_option( 'display_cart_modal_toggle_button' ) === 1 ) { $template_args = array( 'position' => addonify_floating_cart_get_option( 'cart_modal_toggle_button_display_position' ), 'display_badge' => (int) addonify_floating_cart_get_option( 'display_cart_items_number_badge' ), 'badge_position' => addonify_floating_cart_get_option( 'cart_items_number_badge_position' ), ); addonify_floating_cart_get_template( 'floating-button.php', $template_args ); } } add_action( 'addonify_floating_cart_footer_template', 'addonify_floating_cart_floating_button_template' ); /** * Display sidebar cart. * * @since 1.0.0 */ function addonify_floating_cart_add_template() { $template_args = array( 'position' => addonify_floating_cart_get_option( 'cart_position' ), 'overlay_class' => ( (int) addonify_floating_cart_get_option( 'close_cart_modal_on_overlay_click' ) === 1 ) ? 'adfy__hide-woofc' : '', ); addonify_floating_cart_get_template( 'sidebar-cart.php', $template_args ); } add_action( 'addonify_floating_cart_footer_template', 'addonify_floating_cart_add_template' ); /** * Display sidebar cart content. * * @since 1.0.0 */ function addonify_floating_cart_sidebar_cart() { do_action( 'addonify_floating_cart_sidebar_cart_header', array() ); do_action( 'addonify_floating_cart_sidebar_cart_shipping_bar', array() ); do_action( 'addonify_floating_cart_sidebar_cart_notice' ); do_action( 'addonify_floating_cart_sidebar_cart_body', array() ); do_action( 'addonify_floating_cart_sidebar_cart_footer', array() ); } add_action( 'addonify_floating_cart_sidebar_cart', 'addonify_floating_cart_sidebar_cart' ); // ----------------------------------------------------------------------------------------------------- // // Cart template functions with hooks --------------------------------------------------------------- // // ----------------------------------------------------------------------------------------------------- /** * Display sidebar cart footer section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_header_template( $args = array() ) { addonify_floating_cart_get_template( 'cart-sections/header.php', apply_filters( 'addonify_floating_cart_sidebar_cart_header_template_args', $args ) ); } add_action( 'addonify_floating_cart_sidebar_cart_header', 'addonify_floating_cart_get_sidebar_cart_header_template', 10, 1 ); /** * Display sidebar cart body section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_body_template( $args = array() ) { addonify_floating_cart_get_template( 'cart-sections/body.php', apply_filters( 'addonify_floating_cart_sidebar_cart_body_template_args', $args ) ); } add_action( 'addonify_floating_cart_sidebar_cart_body', 'addonify_floating_cart_get_sidebar_cart_body_template', 10, 1 ); /** * Display sidebar cart coupon section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_coupon_template( $args = array() ) { addonify_floating_cart_get_template( 'cart-sections/coupon.php', apply_filters( 'addonify_floating_cart_sidebar_cart_coupon_template_args', $args ) ); } add_action( 'addonify_floating_cart_sidebar_cart_coupon', 'addonify_floating_cart_get_sidebar_cart_coupon_template', 10, 1 ); /** * Display sidebar cart applied coupons section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_applied_coupons_template( $args = array() ) { if ( (int) addonify_floating_cart_get_option( 'display_applied_coupons' ) === 1 ) { addonify_floating_cart_get_template( 'cart-sections/coupons-applied.php', apply_filters( 'addonify_floating_cart_sidebar_cart_applied_coupons_template_args', $args ) ); } } add_action( 'addonify_floating_cart_sidebar_cart_applied_coupons', 'addonify_floating_cart_get_sidebar_cart_applied_coupons_template', 10, 1 ); /** * Display sidebar cart shopping meter section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_shipping_bar_template( $args = array() ) { $shopping_meter = (bool) addonify_floating_cart_get_option( 'enable_shopping_meter' ); $free_shipping_eligibility_amount = (int) addonify_floating_cart_get_option( 'customer_shopping_meter_threshold' ); $pre_threshold_label = addonify_floating_cart_get_option( 'customer_shopping_meter_pre_threshold_label' ); $post_threshold_label = addonify_floating_cart_get_option( 'customer_shopping_meter_post_threshold_label' ); if ( ! $shopping_meter || ( 0 === $free_shipping_eligibility_amount && empty( $pre_threshold_label ) && empty( $post_threshold_label ) ) ) { return; } $template_args = array( 'pre_threshold_label' => $pre_threshold_label, 'post_threshold_label' => $post_threshold_label, ); if ( WC()->cart->get_cart_contents_count() > 0 ) { if ( WC()->cart->display_prices_including_tax() ) { $template_args['total'] = WC()->cart->get_subtotal() + WC()->cart->get_subtotal_tax(); } else { $template_args['total'] = WC()->cart->get_subtotal(); } if ( addonify_floating_cart_get_option( 'include_discount_amount_in_threshold' ) ) { if ( WC()->cart->display_prices_including_tax() ) { $discount = WC()->cart->get_discount_tax() + WC()->cart->get_discount_total(); } else { $discount = WC()->cart->get_discount_total(); } $template_args['total'] = $template_args['total'] - $discount; } if ( $template_args['total'] >= $free_shipping_eligibility_amount ) { $template_args['per'] = 100; $template_args['left'] = 0; } else { $template_args['per'] = 100 - ( ( $free_shipping_eligibility_amount - $template_args['total'] ) / $free_shipping_eligibility_amount * 100 ); $template_args['left'] = $free_shipping_eligibility_amount - $template_args['total']; } } else { $template_args['left'] = 0; $template_args['total'] = 0; $template_args['per'] = 0; } addonify_floating_cart_get_template( 'cart-sections/shipping-bar.php', apply_filters( 'addonify_floating_cart_sidebar_shipping_bar_template_args', $template_args ) ); } add_action( 'addonify_floating_cart_sidebar_cart_shipping_bar', 'addonify_floating_cart_get_sidebar_cart_shipping_bar_template', 10, 1 ); /** * Display sidebar cart shipping section. * * @since 1.0.0 * @param mixed $args Shipping template arguments. */ function addonify_floating_cart_get_sidebar_cart_shipping_template( $args = array() ) { $packages = WC()->cart->get_shipping_packages(); $packages = WC()->shipping()->calculate_shipping( $packages ); $first = true; foreach ( $packages as $i => $package ) { $chosen_method = isset( WC()->session->chosen_shipping_methods[ $i ] ) ? WC()->session->chosen_shipping_methods[ $i ] : ''; $product_names = array(); if ( count( $packages ) > 1 ) { foreach ( $package['contents'] as $item_id => $values ) { $product_names[ $item_id ] = $values['data']->get_name() . ' ×' . $values['quantity']; } $product_names = apply_filters( 'woocommerce_shipping_package_details_array', $product_names, $package ); } $args = array( 'package' => $package, 'available_methods' => $package['rates'], 'show_package_details' => count( $packages ) > 1, 'show_shipping_calculator' => apply_filters( 'woocommerce_shipping_show_shipping_calculator', $first, $i, $package ), 'package_details' => implode( ', ', $product_names ), /* translators: %d: shipping package number */ 'package_name' => apply_filters( 'woocommerce_shipping_package_name', ( ( $i + 1 ) > 1 ) ? sprintf( _x( 'Shipping %d', 'shipping packages', 'addonify-floating-cart' ), ( $i + 1 ) ) : _x( 'Shipping', 'shipping packages', 'addonify-floating-cart' ), $i, $package ), 'index' => $i, 'chosen_method' => $chosen_method, 'formatted_destination' => WC()->countries->get_formatted_address( $package['destination'], ', ' ), 'has_calculated_shipping' => WC()->customer->has_calculated_shipping(), ); addonify_floating_cart_get_template( 'cart-sections/shipping.php', apply_filters( 'addonify_floating_cart_sidebar_cart_shipping_template_args', $args ) ); $first = false; } } add_action( 'addonify_floating_cart_sidebar_cart_shipping', 'addonify_floating_cart_get_sidebar_cart_shipping_template', 10, 1 ); /** * Display sidebar cart footer section. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_sidebar_cart_footer_template( $args = array() ) { addonify_floating_cart_get_template( 'cart-sections/footer.php', apply_filters( 'addonify_floating_cart_sidebar_cart_footer_template_args', $args ) ); } add_action( 'addonify_floating_cart_sidebar_cart_footer', 'addonify_floating_cart_get_sidebar_cart_footer_template', 10, 1 ); /** * Display cart close button in the cart footer. * * @since 1.0.0 */ function addonify_floating_cart_footer_close_button_template() { if ( (int) addonify_floating_cart_get_option( 'display_continue_shopping_button' ) === 1 && ! empty( addonify_floating_cart_get_option( 'continue_shopping_button_action' ) ) && ! empty( addonify_floating_cart_get_option( 'continue_shopping_button_label' ) ) ) { $button_action = addonify_floating_cart_get_option( 'continue_shopping_button_action' ); if ( 'open_cart_page' === $button_action && ! empty( wc_get_cart_url() ) ) { ?> $args['product'], 'product_permalink' => $args['product']->is_visible() ? $args['product']->get_permalink() : '', 'image' => ( ! empty( $args['variation'] ) ) ? $args['variation']->get_image() : $args['product']->get_image(), 'cart_item_key' => $args['cart_item_key'], ); addonify_floating_cart_get_template( 'cart-loop/image.php', apply_filters( 'addonify_floating_cart_product_image_template_args', $template_args ) ); } add_action( 'addonify_floating_cart_product_image', 'addonify_floating_cart_get_product_image_template', 10, 1 ); /** * Display product quantiy field in the cart. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_product_quantity_field_template( $args = array() ) { $max = ( $args['product']->get_max_purchase_quantity() < 0 ) ? '' : $args['product']->get_max_purchase_quantity(); $template_args = array( 'step' => apply_filters( 'woocommerce_quantity_input_step', 1, $args['product'] ), 'min' => apply_filters( 'woocommerce_quantity_input_min', $args['product']->get_min_purchase_quantity(), $args['product'] ), 'max' => apply_filters( 'woocommerce_quantity_input_max', $max, $args['product'] ), 'item_quantity' => $args['cart_item']['quantity'], 'product_id' => $args['product']->get_id(), 'product_sku' => $args['product']->get_sku(), 'cart_item_key' => $args['cart_item_key'], ); addonify_floating_cart_get_template( 'cart-loop/quantity-field.php', apply_filters( 'addonify_floating_cart_product_quantity_field_template_args', $template_args ) ); } add_action( 'addonify_floating_cart_product_quantity_field', 'addonify_floating_cart_get_product_quantity_field_template', 10, 1 ); /** * Display product quantiy and price in the cart. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_product_quantity_price_template( $args = array() ) { $_product = apply_filters( 'woocommerce_cart_item_product', $args['cart_item']['data'], $args['cart_item'], $args['cart_item_key'] ); $template_args = array( 'price' => apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $args['cart_item'], $args['cart_item_key'] ), 'quantity' => $args['cart_item']['quantity'], ); addonify_floating_cart_get_template( 'cart-loop/quantity-price.php', apply_filters( 'addonify_floating_cart_product_quantity_price_template_args', $template_args ) ); } add_action( 'addonify_floating_cart_product_quantity_price', 'addonify_floating_cart_get_product_quantity_price_template', 10, 1 ); /** * Display product title in the cart. * * @since 1.0.0 * @param array $args Arguments passed. */ function addonify_floating_cart_get_product_title_template( $args = array() ) { $template_args = array( 'attributes' => array(), 'product_title' => $args['product']->get_title(), 'product_permalink' => $args['product']->get_permalink(), ); $attributes_values = trim( wc_get_formatted_cart_item_data( $args['cart_item'], true ) ); $attributes_values = preg_replace( '/\s+/', ', ', $attributes_values ); $attributes_values = str_replace( ':,', ':', $attributes_values ); $template_args['aattributes'] = $attributes_values; addonify_floating_cart_get_template( 'cart-loop/title.php', apply_filters( 'addonify_floating_cart_product_title_template_args', $template_args ) ); } add_action( 'addonify_floating_cart_product_title', 'addonify_floating_cart_get_product_title_template', 10, 1 ); if ( ! function_exists( 'addonify_floating_cart_sidebar_cart_notice_template' ) ) { /** * Display cart action notice before the products list. * * @since 1.0.0 */ function addonify_floating_cart_sidebar_cart_notice_template() { addonify_floating_cart_get_template( 'cart-sections/notice.php', array() ); } add_action( 'addonify_floating_cart_sidebar_cart_notice', 'addonify_floating_cart_sidebar_cart_notice_template' ); }