class WDP_WCCP_Compatibility { const KEY = 'some_where_warm_wccp'; const WDP_VERSION = '2.2.4'; const TARGET_VERSION = '5.1.4'; const KEYS = array( 'composite_data', 'composite_parent', 'composite_children', 'composite_item', ); public function is_required() { return class_exists( 'WC_Composite_Products' ); } public function admin_install() { } public function remove_admin_hooks() { } /** * @param WDP_Price_Display $price_display */ public function install( $price_display ) { add_filter( 'wdp_save_cart_item_keys', array( $this, 'wdp_save_cart_item_keys' ), 10 ); add_filter( 'wdp_skip_cart_item', array( $this, 'wdp_skip_cart_item' ), 10, 3 ); add_filter( 'wdp_cart_item_data_before_apply', array( $this, 'wdp_cart_item_data_before_apply' ), 10, 2 ); add_filter( 'wdp_original_cart_item_data', array( $this, 'wdp_original_cart_item_data' ), 10, 1 ); } public function remove_hooks() { remove_filter( 'wdp_save_cart_item_keys', array( $this, 'wdp_save_cart_item_keys' ), 10 ); remove_filter( 'wdp_skip_cart_item', array( $this, 'wdp_skip_cart_item' ), 10 ); remove_filter( 'wdp_cart_item_data_before_apply', array( $this, 'wdp_cart_item_data_before_apply' ), 10 ); remove_filter( 'wdp_original_cart_item_data', array( $this, 'wdp_original_cart_item_data' ), 10 ); } public function wdp_save_cart_item_keys( $keys ) { return array_merge( $keys, self::KEYS ); } public function wdp_skip_cart_item( $skip, $item, $product ) { if ( wc_cp_maybe_is_composited_order_item( $item ) ) { $skip = true; } return $skip; } public function wdp_cart_item_data_before_apply( $cart_item_data, $original_cart_item_data ) { foreach ( self::KEYS as $key ) { if ( isset( $original_cart_item_data[ $key ] ) ) { $cart_item_data[ $key ] = $original_cart_item_data[ $key ]; } } if ( isset( $cart_item_data['composite_children'] ) ) { $cart_item_data['composite_children'] = array(); } return $cart_item_data; } public function wdp_original_cart_item_data( $original_cart_item_data ) { return array(); } } $cmp = new WDP_WCCP_Compatibility(); if ( $cmp->is_required() ) { $cmp->install( null ); }
WooCommerce Composite Products, by SomewhereWarm Print
Created by: Alex Prokaev
Modified on: Tue, 24 Mar, 2020 at 1:00 PM
Did you find it helpful? Yes No
Send feedbackSorry we couldn't be helpful. Help us improve this article with your feedback.