119 lines
3.8 KiB
PHP
Executable File
119 lines
3.8 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Booster for WooCommerce - Module - Cart Customization
|
|
*
|
|
* @version 3.1.0
|
|
* @since 2.7.0
|
|
* @author Algoritmika Ltd.
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
|
|
if ( ! class_exists( 'WCJ_Cart_Customization' ) ) :
|
|
|
|
class WCJ_Cart_Customization extends WCJ_Module {
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @version 3.1.0
|
|
* @since 2.7.0
|
|
*/
|
|
function __construct() {
|
|
|
|
$this->id = 'cart_customization';
|
|
$this->short_desc = __( 'Cart Customization', 'woocommerce-jetpack' );
|
|
$this->desc = __( 'Customize WooCommerce cart - hide coupon field; item remove link; change empty cart "Return to shop" button text.', 'woocommerce-jetpack' );
|
|
$this->link_slug = 'woocommerce-cart-customization';
|
|
parent::__construct();
|
|
|
|
if ( $this->is_enabled() ) {
|
|
// Hide coupon
|
|
if ( 'yes' === get_option( 'wcj_cart_hide_coupon', 'no' ) ) {
|
|
add_filter( 'woocommerce_coupons_enabled', array( $this, 'hide_coupon_field_on_cart' ), PHP_INT_MAX );
|
|
}
|
|
// Hide item remove link
|
|
if ( 'yes' === get_option( 'wcj_cart_hide_item_remove_link', 'no' ) ) {
|
|
add_filter( 'woocommerce_cart_item_remove_link', '__return_empty_string', PHP_INT_MAX );
|
|
}
|
|
// Customize "Return to shop" button text
|
|
if ( 'yes' === get_option( 'wcj_cart_customization_return_to_shop_button_enabled', 'no' ) ) {
|
|
if ( 'js' === get_option( 'wcj_cart_customization_return_to_shop_button_text_method', 'js' ) ) {
|
|
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
|
} else { // 'template'
|
|
add_filter( 'wc_get_template', array( $this, 'replace_empty_cart_template' ), PHP_INT_MAX, 5 );
|
|
add_filter( 'wcj_return_to_shop_text', array( $this, 'change_empty_cart_button_text' ), PHP_INT_MAX );
|
|
}
|
|
}
|
|
// Customize "Return to shop" button link
|
|
if ( 'yes' === get_option( 'wcj_cart_customization_return_to_shop_button_link_enabled', 'no' ) ) {
|
|
add_action( 'woocommerce_return_to_shop_redirect', array( $this, 'change_empty_cart_return_to_shop_link' ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* change_empty_cart_button_text.
|
|
*
|
|
* @version 3.1.0
|
|
* @since 3.1.0
|
|
*/
|
|
function change_empty_cart_button_text( $text ) {
|
|
return get_option( 'wcj_cart_customization_return_to_shop_button_text', __( 'Return to shop', 'woocommerce' ) );
|
|
}
|
|
|
|
/**
|
|
* replace_empty_cart_template.
|
|
*
|
|
* @version 3.1.0
|
|
* @since 3.1.0
|
|
* @todo fix folder structure in /templates
|
|
*/
|
|
function replace_empty_cart_template( $located, $template_name, $args, $template_path, $default_path ) {
|
|
if ( 'cart/cart-empty.php' == $template_name ) {
|
|
$located = untrailingslashit( realpath( plugin_dir_path( __FILE__ ) . '/..' ) ) . '/includes/templates/cart-empty.php';
|
|
}
|
|
return $located;
|
|
}
|
|
|
|
/**
|
|
* change_empty_cart_return_to_shop_link.
|
|
*
|
|
* @version 3.0.1
|
|
* @since 3.0.1
|
|
* @todo (maybe) check if link is not empty
|
|
*/
|
|
function change_empty_cart_return_to_shop_link( $link ) {
|
|
return ( is_cart() ? get_option( 'wcj_cart_customization_return_to_shop_button_link', '' ) : $link );
|
|
}
|
|
|
|
/**
|
|
* enqueue_scripts.
|
|
*
|
|
* @version 2.8.0
|
|
* @since 2.8.0
|
|
* @todo maybe check `is_cart()`
|
|
*/
|
|
function enqueue_scripts() {
|
|
wp_enqueue_script( 'wcj-cart-customization', wcj_plugin_url() . '/includes/js/wcj-cart-customization.js', array( 'jquery' ), WCJ()->version, false );
|
|
wp_localize_script( 'wcj-cart-customization', 'wcj_cart_customization', array(
|
|
'return_to_shop_button_text' => get_option( 'wcj_cart_customization_return_to_shop_button_text', __( 'Return to shop', 'woocommerce' ) ),
|
|
) );
|
|
}
|
|
|
|
/**
|
|
* hide_coupon_field_on_cart.
|
|
*
|
|
* @version 2.6.0
|
|
* @since 2.6.0
|
|
*/
|
|
function hide_coupon_field_on_cart( $enabled ) {
|
|
return ( is_cart() ) ? false : $enabled;
|
|
}
|
|
|
|
}
|
|
|
|
endif;
|
|
|
|
return new WCJ_Cart_Customization();
|