/** * Enqueues required assets for the field type. * * The function also generates script vars to be applied in `wp_localize_script()`. * * @since 0.5.0 * @return array array which can (possibly) contain a 'dependencies' array and a 'script_vars' array */ public function enqueue_assets() { if (self::is_enqueued(__CLASS__)) { return array(); } $assets_dir = ComponentManager::get_base_dir() . '/assets'; $assets_url = ComponentManager::get_base_url() . '/assets'; $version = ComponentManager::get_dependency_info('select2', 'version'); $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_style('select2', $assets_url . '/vendor/select2/dist/css/select2' . $min . '.css', array(), $version); wp_enqueue_script('select2', $assets_url . '/vendor/select2/dist/js/select2' . $min . '.js', array('jquery'), $version, true); $dependencies = array('select2'); $locale = str_replace('_', '-', get_locale()); $language = substr($locale, 0, 2); if (file_exists($assets_dir . '/vendor/select2/dist/js/i18n/' . $locale . '.js')) { wp_enqueue_script('select2-locale', $assets_url . '/vendor/select2/dist/js/i18n/' . $locale . '.js', array('select2'), $version, true); $dependencies[] = 'select2-locale'; } elseif (file_exists($assets_dir . '/vendor/select2/dist/js/i18n/' . $language . '.js')) { wp_enqueue_script('select2-locale', $assets_url . '/vendor/select2/dist/js/i18n/' . $language . '.js', array('select2'), $version, true); $dependencies[] = 'select2-locale'; } return array('dependencies' => $dependencies); }