ID ); $addons = Wiaas_Package_Addon::get_package_addons($package); $option_groups = Wiaas_Package_Option_Groups::get_package_option_groups($package); include 'views/html-linked-packages.php'; } /** * Implements ajax search for package addons */ public static function json_search_addons() { self::_json_search_packages('add_on'); } /** * Implements ajax searc for package options */ public static function json_search_options() { self::_json_search_packages('option'); } /** * Creates and renders new optional packages group */ public static function create_empty_option_group() { $group = array( 'name' => 'Untitled', 'id' => uniqid('option_'), 'default' => false, 'options' => array() ); ?> $posted_option_group) { $option_group = array( 'id' => $posted_option_group['id'], 'name' => $posted_option_group['name'], 'default' => $posted_option_group['default'], 'options' => array() ); $option_group['options'] = isset( $posted_option_group['options'] ) ? array_filter( array_map( 'intval', (array) $posted_option_group['options'] ) ) : array(); $option_groups[] = $option_group; } Wiaas_Package_Option_Groups::set_package_option_groups( $package, $posted_option_groups); } /** * Implements search for packages of provided type * @param $package_type */ private static function _json_search_packages($package_type) { check_ajax_referer( 'search-products', 'security' ); $term = wc_clean( empty( $term ) ? wp_unslash( $_GET['term'] ) : $term ); if ( empty( $term ) ) { wp_die(); } $data_store = WC_Data_Store::load( 'product' ); $ids = $data_store->search_products( $term ); $packages= array_filter( array_map( 'wc_get_product', $ids ), 'wc_products_array_filter_readable' ); $result = array(); foreach ( $packages as $package ) { if (Wiaas_Package_Type::get_package_type($package->get_id()) === $package_type) { $result[ $package->get_id() ] = rawurldecode( $package->get_formatted_name() ); } } wp_send_json( $result ); } } Wiaas_Admin_Linked_Packages::init();