item object $order_items = $order->get_items(); foreach ($order_items as $order_item_id => $order_item) { if ($order_item_id == $item_id) { if ( wc_cp_is_composited_order_item( $order_item, $order ) ) { $classes .= ' component_table_item'; } elseif ( wc_cp_is_composite_container_order_item( $order_item ) ) { $classes .= ' component_container_table_item'; } break; } } return $classes; } /** * Backwards compatibility helper function: try to get item ID from row class * @param string $classes CSS classes for item row (tr) */ public function get_item_id_from_classes ( $classes ) { $class_array = explode(' ', $classes); foreach ($class_array as $class) { if (is_numeric($class)) { $item_id = $class; break; } } // if still empty, we lost the item id somewhere :( if (empty($item_id)) { return false; } else { return $item_id; } } /** * WooCommerce Order Status & Actions Manager emails compatibility */ public function wc_order_status_actions_emails ( $emails ) { // get list of custom statuses from WooCommerce Custom Order Status & Actions // status slug => status name $custom_statuses = \WC_Custom_Status::get_status_list_names(); // append _email to slug (=email_id) and add to emails list foreach ($custom_statuses as $status_slug => $status_name) { $emails[$status_slug.'_email'] = $status_name; } return $emails; } /** * Aelia Currency Switcher compatibility * Applies decimal & Thousand separator settings */ function aelia_currency_formatting( $document_type, $document ) { add_filter( 'wc_price_args', array( $this, 'aelia_currency_price_args' ), 10, 1 ); } function aelia_currency_price_args( $args ) { if ( !empty( $args['currency'] ) && class_exists("\\Aelia\\WC\\CurrencySwitcher\\WC_Aelia_CurrencySwitcher") ) { $cs_settings = \Aelia\WC\CurrencySwitcher\WC_Aelia_CurrencySwitcher::settings(); $args['decimal_separator'] = $cs_settings->get_currency_decimal_separator( $args['currency'] ); $args['thousand_separator'] = $cs_settings->get_currency_thousand_separator( $args['currency'] ); } return $args; } /** * Avoid double images from German Market: remove filter */ function remove_wgm_thumbnails( $document_type, $document ) { remove_filter( 'woocommerce_order_item_name', array( 'WGM_Product', 'add_thumbnail_to_order' ), 100, 3 ); } /** * Restore above */ function restore_wgm_thumbnails( $document_type, $document ) { if ( is_callable( array( 'WGM_Product', 'add_thumbnail_to_order' ) ) && get_option( 'german_market_product_images_in_order', 'off' ) == 'on' ) { add_filter( 'woocommerce_order_item_name', array( 'WGM_Product', 'add_thumbnail_to_order' ), 100, 3 ); } } } endif; // Class exists check