From d50cf95aa4ccf46f7ac14be49be23cfa0be7e333 Mon Sep 17 00:00:00 2001 From: Sistemas - Jadlog Date: Mon, 15 Mar 2021 13:07:20 -0300 Subject: [PATCH] =?UTF-8?q?Vers=C3=A3o=200.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 + doc/MANUAL.md | 31 +- doc/img/adcentrega.png | Bin 0 -> 100815 bytes doc/img/adcmetodo.png | Bin 0 -> 68091 bytes doc/img/areadeentrega.png | Bin 0 -> 89309 bytes doc/img/entregahabilitada.png | Bin 0 -> 62755 bytes doc/img/habilitajad.png | Bin 0 -> 66881 bytes docker-images/Dockerfile.composer | 12 +- .../classes/jadlogShippingInit.php | 33 +- .../tests/_data/wordpress_test.sql | 117 +- .../tests/acceptance/ShippingZonesCest.php | 32 + woocommerce-jadlog/vendor/autoload.php | 7 - .../vendor/composer/ClassLoader.php | 445 - .../vendor/composer/InstalledVersions.php | 1211 --- woocommerce-jadlog/vendor/composer/LICENSE | 21 - .../vendor/composer/autoload_classmap.php | 667 -- .../vendor/composer/autoload_files.php | 33 - .../vendor/composer/autoload_namespaces.php | 15 - .../vendor/composer/autoload_psr4.php | 67 - .../vendor/composer/autoload_real.php | 73 - .../vendor/composer/autoload_static.php | 1102 --- .../vendor/composer/installed.json | 7139 ----------------- .../vendor/composer/installed.php | 1026 --- woocommerce-jadlog/woocommerce-jadlog.php | 2 +- 24 files changed, 179 insertions(+), 11862 deletions(-) create mode 100644 doc/img/adcentrega.png create mode 100644 doc/img/adcmetodo.png create mode 100644 doc/img/areadeentrega.png create mode 100644 doc/img/entregahabilitada.png create mode 100644 doc/img/habilitajad.png create mode 100644 woocommerce-jadlog/tests/acceptance/ShippingZonesCest.php delete mode 100644 woocommerce-jadlog/vendor/autoload.php delete mode 100644 woocommerce-jadlog/vendor/composer/ClassLoader.php delete mode 100644 woocommerce-jadlog/vendor/composer/InstalledVersions.php delete mode 100644 woocommerce-jadlog/vendor/composer/LICENSE delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_classmap.php delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_files.php delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_namespaces.php delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_psr4.php delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_real.php delete mode 100644 woocommerce-jadlog/vendor/composer/autoload_static.php delete mode 100644 woocommerce-jadlog/vendor/composer/installed.json delete mode 100644 woocommerce-jadlog/vendor/composer/installed.php diff --git a/README.md b/README.md index 2cad8283..01b31e7d 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,12 @@ Acesse então http://localhost:8080/wp-admin para configurar o Wordpress e ativa ## Testes +Instale as bibliotecas: + +```bash +$ docker-compose run --rm composer install +``` + Para rodar todos os testes: ```bash @@ -107,6 +113,8 @@ Este plugin pode se integrar ao serviço de monitoramento de erros [Bugsnag](htt ## Changelog +- v0.4.0 + - Suporte a zonas de entrega. *Configuração obrigatória*. - v0.3.0 - Suporta Wordpress 5.6 e WooCommerce 4.9 - v0.2.1 diff --git a/doc/MANUAL.md b/doc/MANUAL.md index 6c6e1a46..6fde0294 100644 --- a/doc/MANUAL.md +++ b/doc/MANUAL.md @@ -35,7 +35,7 @@ ## Configuração ### Parâmetros iniciais -Para configurar os parâmetros iniciais do módulo acesse a configuração a partir do menu *WooCommerce -> Configuration*, aba *Jadlog*. +Para configurar os parâmetros iniciais do módulo acesse a configuração a partir do menu *WooCommerce -> Configuração*, aba *Jadlog*. Há quatro seções distintas. - Configuração Geral - Modalidade Jadlog Expresso @@ -182,6 +182,35 @@ Email do contato da loja. Nome do Responsável da loja. +#### Configuração de Área de Entrega + +A configuração de áreas de entrega é obrigatória para que o método de entrega Jadlog apareça no carrinho de compras. + +Para configurar a entrega acesse a configuração a partir do menu *WooCommerce -> Configuração*, aba *Entrega*. + +- **Adicionar Área de Entrega**: + +![Adicionar Entrega](img/adcentrega.png) + +- **Localização da Área de Entrega**: + +Após inserir Nome da Área e Regiões da Área, clique no botão "Adicionar Entrega". +![Localização Área de Entrega](img/areadeentrega.png) + +- **Adicionar Método de Entrega**: + +Escolher opção "Jadlog". +![Adicionar Método de Entrega](img/adcmetodo.png) + +- **Habilitar Área de Entrega**: + +Habilitar o método de Entrega jadlog e salvar alterações. +![Habilitar Método de Entrega](img/habilitajad.png) + +- **Alterações Salvas**: + +![Alterações Salvas](img/entregahabilitada.png) + ## Utilização pelos clientes diff --git a/doc/img/adcentrega.png b/doc/img/adcentrega.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf7d0fcbf63e4383b45b76133a2ae1975baccd2 GIT binary patch literal 100815 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
Lr;{B|ZUX*U*&?j$H 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%0DjOS-~|UrW21^ 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 T8QNUR$?hm8r6gG(Vd(cC-Zn8| literal 0 HcmV?d00001 diff --git a/doc/img/adcmetodo.png b/doc/img/adcmetodo.png new file mode 100644 index 0000000000000000000000000000000000000000..4c031c0ebe334c2b9d93295971b92e9422ae84b7 GIT binary patch literal 68091 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 Wp&y#ho_@NnYKOzlhbj*E#{U~3w~dMb literal 0 HcmV?d00001 diff --git a/doc/img/habilitajad.png b/doc/img/habilitajad.png new file mode 100644 index 0000000000000000000000000000000000000000..bfeef50e1a438e20ffd8d4372f1e9927c9286dc9 GIT binary patch literal 66881 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 S=m+z)cW&w2tWdLg^1lF)@t(T? literal 0 HcmV?d00001 diff --git a/docker-images/Dockerfile.composer b/docker-images/Dockerfile.composer index 02b249fe..80146c46 100644 --- a/docker-images/Dockerfile.composer +++ b/docker-images/Dockerfile.composer @@ -1,3 +1,13 @@ -FROM composer +FROM php:7.4 + +COPY --from=composer /usr/bin/composer /usr/bin/composer + +RUN apt-get -y update && \ + apt-get -y install libzip-dev && \ + docker-php-ext-configure zip && \ + docker-php-ext-install zip && \ + echo "extension=zip" > /usr/local/etc/php/conf.d/docker-php-ext-zip.ini WORKDIR /woocommerce-jadlog + +ENTRYPOINT [ "/usr/bin/composer" ] diff --git a/woocommerce-jadlog/classes/jadlogShippingInit.php b/woocommerce-jadlog/classes/jadlogShippingInit.php index 89a81dad..18e5a128 100644 --- a/woocommerce-jadlog/classes/jadlogShippingInit.php +++ b/woocommerce-jadlog/classes/jadlogShippingInit.php @@ -9,10 +9,10 @@ use WooCommerce\Jadlog\Classes\ShippingPrice; use WooCommerce\Jadlog\Classes\ShippingPriceService; -if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { +if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) { function wc_jadlog_jadlogShippingInit() { - if ( ! class_exists( 'WC_Jadlog_Shipping_Method' ) ) { + if (! class_exists('WC_Jadlog_Shipping_Method')) { class WC_Jadlog_Shipping_Method extends WC_Shipping_Method { @@ -24,16 +24,21 @@ class WC_Jadlog_Shipping_Method extends WC_Shipping_Method { * @access public * @return void */ - public function __construct() { - $this->id = self::METHOD_ID; - $this->method_title = __('Jadlog', 'jadlog'); - // $this->method_description = __('Jadlog', 'jadlog'); + public function __construct($instance_id = 0) { + $this->id = self::METHOD_ID; + $this->instance_id = absint($instance_id); + $this->method_title = 'Jadlog'; + $this->method_description = + 'Modalidades Package, Expresso e Pickup.
'. + '
jadlog.com.br - '. + 'Uma empresa DPDgroup. Sua encomenda no melhor caminho.'; + + $this->enabled = isset($this->settings['enabled']) ? $this->settings['enabled'] : 'yes'; + $this->title = isset($this->settings['title']) ? $this->settings['title'] : __('Jadlog', 'jadlog'); + $this->supports = array('shipping-zones'); $this->init(); - $this->enabled = isset($this->settings['enabled']) ? $this->settings['enabled'] : 'yes'; - $this->title = isset($this->settings['title']) ? $this->settings['title'] : __('Jadlog', 'jadlog'); - include_once('Delivery.php'); include_once('EmbarcadorService.php'); include_once('Modalidade.php'); @@ -95,7 +100,7 @@ private function jadlog_add_com_rate($package, $postcode) { if (!is_null($cost)) { $rate = array( - 'id' => 'jadlog_com', + 'id' => self::METHOD_ID.'_COM', 'label' => $this->jadlog_build_com_label($shipping_price), 'cost' => $cost, 'taxes' => true, @@ -116,7 +121,7 @@ private function jadlog_add_package_rate($package, $postcode) { if (!is_null($cost)) { $rate = array( - 'id' => 'jadlog_package', + 'id' => self::METHOD_ID.'_PACKAGE', 'label' => $this->jadlog_build_package_label($shipping_price), 'cost' => $cost, 'taxes' => true, @@ -148,7 +153,7 @@ private function jadlog_add_pickup_rates($package, $postcode) { $_SESSION[$pudo->get_id()] = $this->jadlog_build_session_array($pudo); $rate = array( - 'id' => "jadlog_pudo_".$pudo->get_id(), + 'id' => self::METHOD_ID.'_PUDO_'.$pudo->get_id(), 'label' => $this->jadlog_build_pickup_label($shipping_price, $pudo), 'cost' => $cost, 'taxes' => true, @@ -213,7 +218,7 @@ private function jadlog_insert_if_present($text, $plural_phrase, $singular_phras } } - add_action( 'woocommerce_shipping_init', 'wc_jadlog_jadlogShippingInit' ); + add_action('woocommerce_shipping_init', 'wc_jadlog_jadlogShippingInit'); function wc_jadlog_save_order($order_id) { @@ -227,7 +232,7 @@ function wc_jadlog_save_order($order_id) { function wc_jadlog_add_shipping_method($methods) { - $methods['WC_Jadlog_Shipping_Method'] = 'WC_Jadlog_Shipping_Method'; + $methods[WC_Jadlog_Shipping_Method::METHOD_ID] = 'WC_Jadlog_Shipping_Method'; return $methods; } diff --git a/woocommerce-jadlog/tests/_data/wordpress_test.sql b/woocommerce-jadlog/tests/_data/wordpress_test.sql index 3b9f548f..ee532069 100644 --- a/woocommerce-jadlog/tests/_data/wordpress_test.sql +++ b/woocommerce-jadlog/tests/_data/wordpress_test.sql @@ -3,9 +3,9 @@ -- https://www.phpmyadmin.net/ -- -- Host: db --- Tempo de geração: 27-Jan-2021 às 19:24 --- Versão do servidor: 5.6.45 --- versão do PHP: 7.4.12 +-- Tempo de geração: 23-Fev-2021 às 22:34 +-- Versão do servidor: 5.6.51 +-- versão do PHP: 7.4.15 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; @@ -1363,7 +1363,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (100, 'widget_archives', 'a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}', 'yes'), (101, 'widget_meta', 'a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}', 'yes'), (102, 'sidebars_widgets', 'a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}', 'yes'), -(103, 'cron', 'a:18:{i:1611775446;a:1:{s:28:\"wp_1_wc_privacy_cleanup_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:37:\"wp_1_wc_privacy_cleanup_cron_interval\";s:4:\"args\";a:0:{}s:8:\"interval\";i:300;}}}i:1611775472;a:1:{s:26:\"action_scheduler_run_queue\";a:1:{s:32:\"0d04ed39571b55704c122d726248bbac\";a:3:{s:8:\"schedule\";s:12:\"every_minute\";s:4:\"args\";a:1:{i:0;s:7:\"WP Cron\";}s:8:\"interval\";i:60;}}}i:1611778210;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611778234;a:1:{s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611778241;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611779015;a:1:{s:32:\"woocommerce_cancel_unpaid_orders\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}i:1611781564;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1611792000;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611817810;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1611846374;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611857164;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861010;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861013;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861017;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861035;a:1:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1612379410;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1612883224;a:1:{s:25:\"woocommerce_geoip_updater\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:11:\"fifteendays\";s:4:\"args\";a:0:{}s:8:\"interval\";i:1296000;}}}s:7:\"version\";i:2;}', 'yes'), +(103, 'cron', 'a:19:{i:1611775446;a:1:{s:28:\"wp_1_wc_privacy_cleanup_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:37:\"wp_1_wc_privacy_cleanup_cron_interval\";s:4:\"args\";a:0:{}s:8:\"interval\";i:300;}}}i:1611775472;a:1:{s:26:\"action_scheduler_run_queue\";a:1:{s:32:\"0d04ed39571b55704c122d726248bbac\";a:3:{s:8:\"schedule\";s:12:\"every_minute\";s:4:\"args\";a:1:{i:0;s:7:\"WP Cron\";}s:8:\"interval\";i:60;}}}i:1611778210;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611778234;a:1:{s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611778241;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1611779015;a:1:{s:32:\"woocommerce_cancel_unpaid_orders\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}i:1611781564;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1611792000;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611817810;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1611846374;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611857164;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861010;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861013;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861017;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1611861035;a:1:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1612379410;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1612883224;a:1:{s:25:\"woocommerce_geoip_updater\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:11:\"fifteendays\";s:4:\"args\";a:0:{}s:8:\"interval\";i:1296000;}}}i:1614119640;a:1:{s:28:\"wp_update_comment_type_batch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}s:7:\"version\";i:2;}', 'yes'), (104, 'widget_pages', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (105, 'widget_calendar', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (106, 'widget_media_audio', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), @@ -1489,7 +1489,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (252, 'product_cat_children', 'a:0:{}', 'yes'), (253, 'default_product_cat', '15', 'yes'), (254, 'woocommerce_admin_notices', 'a:1:{i:1;s:20:\"no_secure_connection\";}', 'yes'), -(261, 'action_scheduler_lock_async-request-runner', '1611775506', 'yes'), +(261, 'action_scheduler_lock_async-request-runner', '1614119706', 'yes'), (262, 'theme_mods_twentytwenty', 'a:4:{s:16:\"background_color\";s:3:\"fff\";s:16:\"sidebars_widgets\";a:2:{s:4:\"time\";i:1606245378;s:4:\"data\";a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}}}s:18:\"nav_menu_locations\";a:0:{}s:18:\"custom_css_post_id\";i:-1;}', 'yes'), (263, 'woocommerce_maxmind_geolocation_settings', 'a:1:{s:15:\"database_prefix\";s:32:\"UyKkat2WKZP0fvFXWPlVEOflXf1DdgY5\";}', 'yes'), (264, '_transient_woocommerce_webhook_ids_status_active', 'a:0:{}', 'yes'), @@ -1509,7 +1509,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (281, 'woocommerce_admin_install_timestamp', '1606245035', 'yes'), (285, 'woocommerce_meta_box_errors', 'a:0:{}', 'yes'), (286, 'woocommerce_onboarding_profile', 'a:9:{s:9:\"completed\";b:1;s:12:\"setup_client\";b:1;s:8:\"industry\";a:1:{i:0;a:1:{s:4:\"slug\";s:5:\"other\";}}s:13:\"product_types\";a:1:{i:0;s:8:\"physical\";}s:13:\"product_count\";s:1:\"0\";s:14:\"selling_venues\";s:2:\"no\";s:19:\"business_extensions\";a:0:{}s:5:\"theme\";s:12:\"twentytwenty\";s:7:\"plugins\";s:7:\"skipped\";}', 'yes'), -(289, '_transient_woocommerce_reports-transient-version', '1611590165', 'yes'), +(289, '_transient_woocommerce_reports-transient-version', '1614119580', 'yes'), (296, 'current_theme', 'Twenty Twenty', 'yes'), (297, 'theme_switched', '', 'yes'), (298, 'woocommerce_maybe_regenerate_images_hash', '91b4c9009722c706e00dfc584c4f8626', 'yes'), @@ -1566,11 +1566,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (363, 'wc_settings_tab_jadlog_shipper_cel', '11 989899899', 'yes'), (364, 'wc_settings_tab_jadlog_shipper_email', 'kpi.secop@jadlog.com.br', 'yes'), (365, 'wc_settings_tab_jadlog_shipper_contato', 'GUILHERME', 'yes'), -(366, '_transient_shipping-transient-version', '1606246396', 'yes'), -(393, '_transient_timeout_wc_low_stock_count', '1613143771', 'no'), -(394, '_transient_wc_low_stock_count', '0', 'no'), -(395, '_transient_timeout_wc_outofstock_count', '1613143772', 'no'), -(396, '_transient_wc_outofstock_count', '0', 'no'), +(366, '_transient_shipping-transient-version', '1614119646', 'yes'), (401, 'action_scheduler_migration_status', 'complete', 'yes'), (402, 'woocommerce_marketplace_suggestions', 'a:2:{s:11:\"suggestions\";a:26:{i:0;a:4:{s:4:\"slug\";s:28:\"product-edit-meta-tab-header\";s:7:\"context\";s:28:\"product-edit-meta-tab-header\";s:5:\"title\";s:22:\"Recommended extensions\";s:13:\"allow-dismiss\";b:0;}i:1;a:6:{s:4:\"slug\";s:39:\"product-edit-meta-tab-footer-browse-all\";s:7:\"context\";s:28:\"product-edit-meta-tab-footer\";s:9:\"link-text\";s:21:\"Browse all extensions\";s:3:\"url\";s:64:\"https://woocommerce.com/product-category/woocommerce-extensions/\";s:8:\"promoted\";s:31:\"category-woocommerce-extensions\";s:13:\"allow-dismiss\";b:0;}i:2;a:9:{s:4:\"slug\";s:46:\"product-edit-mailchimp-woocommerce-memberships\";s:7:\"product\";s:33:\"woocommerce-memberships-mailchimp\";s:14:\"show-if-active\";a:1:{i:0;s:23:\"woocommerce-memberships\";}s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:116:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/mailchimp-for-memberships.svg\";s:5:\"title\";s:25:\"Mailchimp for Memberships\";s:4:\"copy\";s:79:\"Completely automate your email lists by syncing membership changes to Mailchimp\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:67:\"https://woocommerce.com/products/mailchimp-woocommerce-memberships/\";}i:3;a:9:{s:4:\"slug\";s:19:\"product-edit-addons\";s:7:\"product\";s:26:\"woocommerce-product-addons\";s:14:\"show-if-active\";a:2:{i:0;s:25:\"woocommerce-subscriptions\";i:1;s:20:\"woocommerce-bookings\";}s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:106:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/product-add-ons.svg\";s:5:\"title\";s:15:\"Product Add-Ons\";s:4:\"copy\";s:93:\"Offer add-ons like gift wrapping, special messages or other special options for your products\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:49:\"https://woocommerce.com/products/product-add-ons/\";}i:4;a:9:{s:4:\"slug\";s:46:\"product-edit-woocommerce-subscriptions-gifting\";s:7:\"product\";s:33:\"woocommerce-subscriptions-gifting\";s:14:\"show-if-active\";a:1:{i:0;s:25:\"woocommerce-subscriptions\";}s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:116:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/gifting-for-subscriptions.svg\";s:5:\"title\";s:25:\"Gifting for Subscriptions\";s:4:\"copy\";s:70:\"Let customers buy subscriptions for others - they\'re the ultimate gift\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:67:\"https://woocommerce.com/products/woocommerce-subscriptions-gifting/\";}i:5;a:9:{s:4:\"slug\";s:42:\"product-edit-teams-woocommerce-memberships\";s:7:\"product\";s:33:\"woocommerce-memberships-for-teams\";s:14:\"show-if-active\";a:1:{i:0;s:23:\"woocommerce-memberships\";}s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:112:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/teams-for-memberships.svg\";s:5:\"title\";s:21:\"Teams for Memberships\";s:4:\"copy\";s:123:\"Adds B2B functionality to WooCommerce Memberships, allowing sites to sell team, group, corporate, or family member accounts\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:63:\"https://woocommerce.com/products/teams-woocommerce-memberships/\";}i:6;a:8:{s:4:\"slug\";s:29:\"product-edit-variation-images\";s:7:\"product\";s:39:\"woocommerce-additional-variation-images\";s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:118:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/additional-variation-images.svg\";s:5:\"title\";s:27:\"Additional Variation Images\";s:4:\"copy\";s:72:\"Showcase your products in the best light with a image for each variation\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:73:\"https://woocommerce.com/products/woocommerce-additional-variation-images/\";}i:7;a:9:{s:4:\"slug\";s:47:\"product-edit-woocommerce-subscription-downloads\";s:7:\"product\";s:34:\"woocommerce-subscription-downloads\";s:14:\"show-if-active\";a:1:{i:0;s:25:\"woocommerce-subscriptions\";}s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:113:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/subscription-downloads.svg\";s:5:\"title\";s:22:\"Subscription Downloads\";s:4:\"copy\";s:57:\"Give customers special downloads with their subscriptions\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:68:\"https://woocommerce.com/products/woocommerce-subscription-downloads/\";}i:8;a:8:{s:4:\"slug\";s:31:\"product-edit-min-max-quantities\";s:7:\"product\";s:30:\"woocommerce-min-max-quantities\";s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:109:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/min-max-quantities.svg\";s:5:\"title\";s:18:\"Min/Max Quantities\";s:4:\"copy\";s:81:\"Specify minimum and maximum allowed product quantities for orders to be completed\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:52:\"https://woocommerce.com/products/min-max-quantities/\";}i:9;a:8:{s:4:\"slug\";s:28:\"product-edit-name-your-price\";s:7:\"product\";s:27:\"woocommerce-name-your-price\";s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:106:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/name-your-price.svg\";s:5:\"title\";s:15:\"Name Your Price\";s:4:\"copy\";s:70:\"Let customers pay what they want - useful for donations, tips and more\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:49:\"https://woocommerce.com/products/name-your-price/\";}i:10;a:8:{s:4:\"slug\";s:42:\"product-edit-woocommerce-one-page-checkout\";s:7:\"product\";s:29:\"woocommerce-one-page-checkout\";s:7:\"context\";a:1:{i:0;s:26:\"product-edit-meta-tab-body\";}s:4:\"icon\";s:108:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/one-page-checkout.svg\";s:5:\"title\";s:17:\"One Page Checkout\";s:4:\"copy\";s:92:\"Don\'t make customers click around - let them choose products, checkout & pay all on one page\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:63:\"https://woocommerce.com/products/woocommerce-one-page-checkout/\";}i:11;a:4:{s:4:\"slug\";s:19:\"orders-empty-header\";s:7:\"context\";s:24:\"orders-list-empty-header\";s:5:\"title\";s:20:\"Tools for your store\";s:13:\"allow-dismiss\";b:0;}i:12;a:6:{s:4:\"slug\";s:30:\"orders-empty-footer-browse-all\";s:7:\"context\";s:24:\"orders-list-empty-footer\";s:9:\"link-text\";s:21:\"Browse all extensions\";s:3:\"url\";s:64:\"https://woocommerce.com/product-category/woocommerce-extensions/\";s:8:\"promoted\";s:31:\"category-woocommerce-extensions\";s:13:\"allow-dismiss\";b:0;}i:13;a:8:{s:4:\"slug\";s:19:\"orders-empty-zapier\";s:7:\"context\";s:22:\"orders-list-empty-body\";s:7:\"product\";s:18:\"woocommerce-zapier\";s:4:\"icon\";s:97:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/zapier.svg\";s:5:\"title\";s:6:\"Zapier\";s:4:\"copy\";s:88:\"Save time and increase productivity by connecting your store to more than 1000+ services\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:52:\"https://woocommerce.com/products/woocommerce-zapier/\";}i:14;a:8:{s:4:\"slug\";s:30:\"orders-empty-shipment-tracking\";s:7:\"context\";s:22:\"orders-list-empty-body\";s:7:\"product\";s:29:\"woocommerce-shipment-tracking\";s:4:\"icon\";s:108:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/shipment-tracking.svg\";s:5:\"title\";s:17:\"Shipment Tracking\";s:4:\"copy\";s:86:\"Let customers know when their orders will arrive by adding shipment tracking to emails\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:51:\"https://woocommerce.com/products/shipment-tracking/\";}i:15;a:8:{s:4:\"slug\";s:32:\"orders-empty-table-rate-shipping\";s:7:\"context\";s:22:\"orders-list-empty-body\";s:7:\"product\";s:31:\"woocommerce-table-rate-shipping\";s:4:\"icon\";s:110:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/table-rate-shipping.svg\";s:5:\"title\";s:19:\"Table Rate Shipping\";s:4:\"copy\";s:122:\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:53:\"https://woocommerce.com/products/table-rate-shipping/\";}i:16;a:8:{s:4:\"slug\";s:40:\"orders-empty-shipping-carrier-extensions\";s:7:\"context\";s:22:\"orders-list-empty-body\";s:4:\"icon\";s:118:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/shipping-carrier-extensions.svg\";s:5:\"title\";s:27:\"Shipping Carrier Extensions\";s:4:\"copy\";s:116:\"Show live rates from FedEx, UPS, USPS and more directly on your store - never under or overcharge for shipping again\";s:11:\"button-text\";s:13:\"Find Carriers\";s:8:\"promoted\";s:26:\"category-shipping-carriers\";s:3:\"url\";s:99:\"https://woocommerce.com/product-category/woocommerce-extensions/shipping-methods/shipping-carriers/\";}i:17;a:8:{s:4:\"slug\";s:32:\"orders-empty-google-product-feed\";s:7:\"context\";s:22:\"orders-list-empty-body\";s:7:\"product\";s:25:\"woocommerce-product-feeds\";s:4:\"icon\";s:110:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/google-product-feed.svg\";s:5:\"title\";s:19:\"Google Product Feed\";s:4:\"copy\";s:76:\"Increase sales by letting customers find you when they\'re shopping on Google\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:53:\"https://woocommerce.com/products/google-product-feed/\";}i:18;a:4:{s:4:\"slug\";s:35:\"products-empty-header-product-types\";s:7:\"context\";s:26:\"products-list-empty-header\";s:5:\"title\";s:23:\"Other types of products\";s:13:\"allow-dismiss\";b:0;}i:19;a:6:{s:4:\"slug\";s:32:\"products-empty-footer-browse-all\";s:7:\"context\";s:26:\"products-list-empty-footer\";s:9:\"link-text\";s:21:\"Browse all extensions\";s:3:\"url\";s:64:\"https://woocommerce.com/product-category/woocommerce-extensions/\";s:8:\"promoted\";s:31:\"category-woocommerce-extensions\";s:13:\"allow-dismiss\";b:0;}i:20;a:8:{s:4:\"slug\";s:30:\"products-empty-product-vendors\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:27:\"woocommerce-product-vendors\";s:4:\"icon\";s:106:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/product-vendors.svg\";s:5:\"title\";s:15:\"Product Vendors\";s:4:\"copy\";s:47:\"Turn your store into a multi-vendor marketplace\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:49:\"https://woocommerce.com/products/product-vendors/\";}i:21;a:8:{s:4:\"slug\";s:26:\"products-empty-memberships\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:23:\"woocommerce-memberships\";s:4:\"icon\";s:102:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/memberships.svg\";s:5:\"title\";s:11:\"Memberships\";s:4:\"copy\";s:76:\"Give members access to restricted content or products, for a fee or for free\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:57:\"https://woocommerce.com/products/woocommerce-memberships/\";}i:22;a:9:{s:4:\"slug\";s:35:\"products-empty-woocommerce-deposits\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:20:\"woocommerce-deposits\";s:14:\"show-if-active\";a:1:{i:0;s:20:\"woocommerce-bookings\";}s:4:\"icon\";s:99:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/deposits.svg\";s:5:\"title\";s:8:\"Deposits\";s:4:\"copy\";s:75:\"Make it easier for customers to pay by offering a deposit or a payment plan\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:54:\"https://woocommerce.com/products/woocommerce-deposits/\";}i:23;a:8:{s:4:\"slug\";s:40:\"products-empty-woocommerce-subscriptions\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:25:\"woocommerce-subscriptions\";s:4:\"icon\";s:104:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/subscriptions.svg\";s:5:\"title\";s:13:\"Subscriptions\";s:4:\"copy\";s:97:\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:59:\"https://woocommerce.com/products/woocommerce-subscriptions/\";}i:24;a:8:{s:4:\"slug\";s:35:\"products-empty-woocommerce-bookings\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:20:\"woocommerce-bookings\";s:4:\"icon\";s:99:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/bookings.svg\";s:5:\"title\";s:8:\"Bookings\";s:4:\"copy\";s:99:\"Allow customers to book appointments, make reservations or rent equipment without leaving your site\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:54:\"https://woocommerce.com/products/woocommerce-bookings/\";}i:25;a:8:{s:4:\"slug\";s:30:\"products-empty-product-bundles\";s:7:\"context\";s:24:\"products-list-empty-body\";s:7:\"product\";s:27:\"woocommerce-product-bundles\";s:4:\"icon\";s:106:\"https://woocommerce.com/wp-content/plugins/wccom-plugins/marketplace-suggestions/icons/product-bundles.svg\";s:5:\"title\";s:15:\"Product Bundles\";s:4:\"copy\";s:49:\"Offer customizable bundles and assembled products\";s:11:\"button-text\";s:10:\"Learn More\";s:3:\"url\";s:49:\"https://woocommerce.com/products/product-bundles/\";}}s:7:\"updated\";i:1610551775;}', 'no'), (425, '_transient_timeout_wc_shipping_method_count_legacy', '1613143847', 'no'), @@ -1598,7 +1594,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (506, 'wc_blocks_db_schema_version', '260', 'yes'), (507, 'wc_remote_inbox_notifications_stored_state', 'O:8:\"stdClass\":2:{s:22:\"there_were_no_products\";b:0;s:22:\"there_are_now_products\";b:1;}', 'yes'), (511, 'woocommerce_default_homepage_layout', 'two_columns', 'no'), -(514, '_transient_health-check-site-status-result', '{\"good\":13,\"recommended\":5,\"critical\":2}', 'yes'); +(514, '_transient_health-check-site-status-result', '{\"good\":\"13\",\"recommended\":\"5\",\"critical\":\"2\"}', 'yes'); INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (519, 'wc_remote_inbox_notifications_specs', 'a:9:{s:37:\"ecomm-need-help-setting-up-your-store\";O:8:\"stdClass\":8:{s:4:\"slug\";s:37:\"ecomm-need-help-setting-up-your-store\";s:4:\"type\";s:4:\"info\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:32:\"Need help setting up your Store?\";s:7:\"content\";s:350:\"Schedule a free 30-min quick start session and get help from our specialists. We’re happy to walk through setup steps, show you around the WordPress.com dashboard, troubleshoot any issues you may have, and help you the find the features you need to accomplish your goals for your site.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:16:\"set-up-concierge\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:21:\"Schedule free session\";}}s:3:\"url\";s:34:\"https://wordpress.com/me/concierge\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:1:{i:0;O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:3:{i:0;s:35:\"woocommerce-shipping-australia-post\";i:1;s:32:\"woocommerce-shipping-canada-post\";i:2;s:30:\"woocommerce-shipping-royalmail\";}}}}s:20:\"woocommerce-services\";O:8:\"stdClass\":8:{s:4:\"slug\";s:20:\"woocommerce-services\";s:4:\"type\";s:4:\"info\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:26:\"WooCommerce Shipping & Tax\";s:7:\"content\";s:255:\"WooCommerce Shipping & Tax helps get your store “ready to sell” as quickly as possible. You create your products. We take care of tax calculation, payment processing, and shipping label printing! Learn more about the extension that you just installed.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:10:\"learn-more\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:10:\"Learn more\";}}s:3:\"url\";s:84:\"https://docs.woocommerce.com/document/woocommerce-shipping-and-tax/?utm_source=inbox\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:10:\"unactioned\";}}s:5:\"rules\";a:2:{i:0;O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:20:\"woocommerce-services\";}}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:18:\"wcadmin_active_for\";s:9:\"operation\";s:1:\"<\";s:4:\"days\";i:2;}}}s:32:\"ecomm-unique-shopping-experience\";O:8:\"stdClass\":8:{s:4:\"slug\";s:32:\"ecomm-unique-shopping-experience\";s:4:\"type\";s:4:\"info\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:53:\"For a shopping experience as unique as your customers\";s:7:\"content\";s:274:\"Product Add-Ons allow your customers to personalize products while they’re shopping on your online store. No more follow-up email requests—customers get what they want, before they’re done checking out. Learn more about this extension that comes included in your plan.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:43:\"learn-more-ecomm-unique-shopping-experience\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:10:\"Learn more\";}}s:3:\"url\";s:71:\"https://docs.woocommerce.com/document/product-add-ons/?utm_source=inbox\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:2:{i:0;O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:3:{i:0;s:35:\"woocommerce-shipping-australia-post\";i:1;s:32:\"woocommerce-shipping-canada-post\";i:2;s:30:\"woocommerce-shipping-royalmail\";}}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:18:\"wcadmin_active_for\";s:9:\"operation\";s:1:\"<\";s:4:\"days\";i:2;}}}s:19:\"wcpay-promo-2020-11\";O:8:\"stdClass\":8:{s:4:\"slug\";s:19:\"wcpay-promo-2020-11\";s:4:\"type\";s:9:\"marketing\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:54:\"Manage subscriber payments from your store\'s dashboard\";s:7:\"content\";s:643:\"Securely accept cards and manage transactions right from your dashboard with WooCommerce Payments – now supporting WooCommerce Subscriptions!

By clicking \"Install now,\" you agree to our Terms of Service.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:11:\"install-now\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:11:\"Install now\";}}s:3:\"url\";s:57:\"admin.php?page=wc-admin&action=setup-woocommerce-payments\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:10:{i:0;O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:17:\"woocommerce-admin\";}}i:1;O:8:\"stdClass\":4:{s:4:\"type\";s:14:\"plugin_version\";s:6:\"plugin\";s:17:\"woocommerce-admin\";s:8:\"operator\";s:2:\">=\";s:7:\"version\";s:5:\"1.7.0\";}i:2;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:20:\"woocommerce-payments\";}}}i:3;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:26:\"woocommerce-gateway-stripe\";}}}i:4;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:8:\"industry\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:31:\"cbd-other-hemp-derived-products\";}}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:11:\"order_count\";s:9:\"operation\";s:2:\">=\";s:5:\"value\";i:10;}i:6;O:8:\"stdClass\":2:{s:4:\"type\";s:18:\"publish_after_time\";s:13:\"publish_after\";s:19:\"2020-11-18 14:00:00\";}i:7;O:8:\"stdClass\":2:{s:4:\"type\";s:19:\"publish_before_time\";s:14:\"publish_before\";s:19:\"2020-12-07 00:00:00\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:21:\"base_location_country\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"US\";}i:9;O:8:\"stdClass\":2:{s:4:\"type\";s:2:\"or\";s:8:\"operands\";a:26:{i:0;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CO\";}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"DE\";}i:2;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"FL\";}i:3;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"HI\";}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ID\";}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IN\";}i:6;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"KS\";}i:7;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"KY\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"LA\";}i:9;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MA\";}i:10;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MN\";}i:11;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MT\";}i:12;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NE\";}i:13;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NV\";}i:14;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NH\";}i:15;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NM\";}i:16;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ND\";}i:17;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OH\";}i:18;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OR\";}i:19;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"PA\";}i:20;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"SD\";}i:21;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"TN\";}i:22;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"TX\";}i:23;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"VA\";}i:24;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WA\";}i:25;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WI\";}}}}}s:27:\"wcpay-subscriptions-2020-11\";O:8:\"stdClass\":8:{s:4:\"slug\";s:27:\"wcpay-subscriptions-2020-11\";s:4:\"type\";s:9:\"marketing\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:54:\"Manage subscriber payments from your store\'s dashboard\";s:7:\"content\";s:643:\"Securely accept cards and manage transactions right from your dashboard with WooCommerce Payments – now supporting WooCommerce Subscriptions!

By clicking \"Install now,\" you agree to our Terms of Service.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:11:\"install-now\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:11:\"Install now\";}}s:3:\"url\";s:57:\"admin.php?page=wc-admin&action=setup-woocommerce-payments\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:10:{i:0;O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:17:\"woocommerce-admin\";}}i:1;O:8:\"stdClass\":4:{s:4:\"type\";s:14:\"plugin_version\";s:6:\"plugin\";s:17:\"woocommerce-admin\";s:8:\"operator\";s:2:\">=\";s:7:\"version\";s:5:\"1.7.0\";}i:2;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:20:\"woocommerce-payments\";}}}i:3;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:26:\"woocommerce-gateway-stripe\";}}}i:4;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:8:\"industry\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:31:\"cbd-other-hemp-derived-products\";}}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:11:\"order_count\";s:9:\"operation\";s:2:\">=\";s:5:\"value\";i:10;}i:6;O:8:\"stdClass\":2:{s:4:\"type\";s:18:\"publish_after_time\";s:13:\"publish_after\";s:19:\"2020-11-18 14:00:00\";}i:7;O:8:\"stdClass\":2:{s:4:\"type\";s:19:\"publish_before_time\";s:14:\"publish_before\";s:19:\"2020-12-07 00:00:00\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:21:\"base_location_country\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"US\";}i:9;O:8:\"stdClass\":2:{s:4:\"type\";s:2:\"or\";s:8:\"operands\";a:24:{i:0;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AL\";}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AK\";}i:2;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AZ\";}i:3;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AR\";}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CA\";}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CT\";}i:6;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"DC\";}i:7;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IL\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IA\";}i:9;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ME\";}i:10;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MD\";}i:11;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MI\";}i:12;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MS\";}i:13;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MO\";}i:14;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NJ\";}i:15;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NY\";}i:16;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NC\";}i:17;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OK\";}i:18;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"RI\";}i:19;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"SC\";}i:20;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"UT\";}i:21;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"VT\";}i:22;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WV\";}i:23;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WY\";}}}}}s:19:\"wcpay-promo-2020-12\";O:8:\"stdClass\":8:{s:4:\"slug\";s:19:\"wcpay-promo-2020-12\";s:4:\"type\";s:9:\"marketing\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:54:\"Get 50% off transaction fees with WooCommerce Payments\";s:7:\"content\";s:625:\"Keep more of your hard-earned cash by adding WooCommerce Payments to your store. Lock in a discounted rate of 1.5% + $0.15 for $25,000 of payments (or three months, whichever comes first). Limited time offer – don’t miss out!

By clicking \"Install now,\" you agree to our promotional Terms of Service.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:11:\"install-now\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:11:\"Install now\";}}s:3:\"url\";s:57:\"admin.php?page=wc-admin&action=setup-woocommerce-payments\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:7:{i:0;O:8:\"stdClass\":4:{s:4:\"type\";s:14:\"plugin_version\";s:6:\"plugin\";s:11:\"woocommerce\";s:8:\"operator\";s:2:\">=\";s:7:\"version\";s:3:\"4.8\";}i:1;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:20:\"woocommerce-payments\";}}}i:2;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:26:\"woocommerce-gateway-stripe\";}}}i:3;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:8:\"industry\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:31:\"cbd-other-hemp-derived-products\";}}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:11:\"order_count\";s:9:\"operation\";s:2:\">=\";s:5:\"value\";i:10;}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:21:\"base_location_country\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"US\";}i:6;O:8:\"stdClass\":2:{s:4:\"type\";s:2:\"or\";s:8:\"operands\";a:26:{i:0;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CO\";}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"DE\";}i:2;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"FL\";}i:3;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"HI\";}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ID\";}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IN\";}i:6;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"KS\";}i:7;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"KY\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"LA\";}i:9;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MA\";}i:10;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MN\";}i:11;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MT\";}i:12;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NE\";}i:13;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NV\";}i:14;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NH\";}i:15;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NM\";}i:16;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ND\";}i:17;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OH\";}i:18;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OR\";}i:19;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"PA\";}i:20;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"SD\";}i:21;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"TN\";}i:22;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"TX\";}i:23;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"VA\";}i:24;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WA\";}i:25;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WI\";}}}}}s:27:\"wcpay-subscriptions-2020-12\";O:8:\"stdClass\":8:{s:4:\"slug\";s:27:\"wcpay-subscriptions-2020-12\";s:4:\"type\";s:9:\"marketing\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:43:\"Manage payments from your store\'s dashboard\";s:7:\"content\";s:560:\"Securely accept cards and manage transactions right from your dashboard with WooCommerce Payments! Zero setup fees or monthly fees. Just pay-as-you-go, starting at just 2.9% + $0.30 per transaction for U.S.-issued cards.

By clicking \"Install now,\" you agree to our Terms of Service.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:11:\"install-now\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:11:\"Install now\";}}s:3:\"url\";s:57:\"admin.php?page=wc-admin&action=setup-woocommerce-payments\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:7:{i:0;O:8:\"stdClass\":4:{s:4:\"type\";s:14:\"plugin_version\";s:6:\"plugin\";s:11:\"woocommerce\";s:8:\"operator\";s:2:\">=\";s:7:\"version\";s:3:\"4.8\";}i:1;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:20:\"woocommerce-payments\";}}}i:2;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":2:{s:4:\"type\";s:17:\"plugins_activated\";s:7:\"plugins\";a:1:{i:0;s:26:\"woocommerce-gateway-stripe\";}}}i:3;O:8:\"stdClass\":2:{s:4:\"type\";s:3:\"not\";s:7:\"operand\";O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:8:\"industry\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:31:\"cbd-other-hemp-derived-products\";}}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:11:\"order_count\";s:9:\"operation\";s:2:\">=\";s:5:\"value\";i:10;}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:21:\"base_location_country\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"US\";}i:6;O:8:\"stdClass\":2:{s:4:\"type\";s:2:\"or\";s:8:\"operands\";a:24:{i:0;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AL\";}i:1;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AK\";}i:2;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AZ\";}i:3;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"AR\";}i:4;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CA\";}i:5;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"CT\";}i:6;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"DC\";}i:7;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IL\";}i:8;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"IA\";}i:9;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"ME\";}i:10;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MD\";}i:11;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MI\";}i:12;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MS\";}i:13;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"MO\";}i:14;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NJ\";}i:15;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NY\";}i:16;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"NC\";}i:17;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"OK\";}i:18;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"RI\";}i:19;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"SC\";}i:20;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"UT\";}i:21;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"VT\";}i:22;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WV\";}i:23;O:8:\"stdClass\":3:{s:4:\"type\";s:19:\"base_location_state\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:2:\"WY\";}}}}}s:37:\"wc-admin-getting-started-in-ecommerce\";O:8:\"stdClass\":8:{s:4:\"slug\";s:37:\"wc-admin-getting-started-in-ecommerce\";s:4:\"type\";s:4:\"info\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:38:\"Getting Started in eCommerce - webinar\";s:7:\"content\";s:174:\"We want to make eCommerce and this process of getting started as easy as possible for you. Watch this webinar to get tips on how to have our store up and running in a breeze.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:17:\"watch-the-webinar\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:17:\"Watch the webinar\";}}s:3:\"url\";s:28:\"https://youtu.be/V_2XtCOyZ7o\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:2:{i:0;O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:12:\"setup_client\";s:9:\"operation\";s:2:\"!=\";s:5:\"value\";b:1;}i:1;O:8:\"stdClass\":2:{s:4:\"type\";s:2:\"or\";s:8:\"operands\";a:3:{i:0;O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:13:\"product_count\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:1:\"0\";}i:1;O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:7:\"revenue\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:4:\"none\";}i:2;O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:7:\"revenue\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";s:10:\"up-to-2500\";}}}}}s:18:\"your-first-product\";O:8:\"stdClass\":8:{s:4:\"slug\";s:18:\"your-first-product\";s:4:\"type\";s:4:\"info\";s:6:\"status\";s:10:\"unactioned\";s:12:\"is_snoozable\";i:0;s:6:\"source\";s:15:\"woocommerce.com\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":3:{s:6:\"locale\";s:5:\"en_US\";s:5:\"title\";s:18:\"Your first product\";s:7:\"content\";s:461:\"That\'s huge! You\'re well on your way to building a successful online store — now it’s time to think about how you\'ll fulfill your orders.

Read our shipping guide to learn best practices and options for putting together your shipping strategy. And for WooCommerce stores in the United States, you can print discounted shipping labels via USPS with WooCommerce Shipping.\";}}s:7:\"actions\";a:1:{i:0;O:8:\"stdClass\":6:{s:4:\"name\";s:10:\"learn-more\";s:7:\"locales\";a:1:{i:0;O:8:\"stdClass\":2:{s:6:\"locale\";s:5:\"en_US\";s:5:\"label\";s:10:\"Learn more\";}}s:3:\"url\";s:82:\"https://woocommerce.com/posts/ecommerce-shipping-solutions-guide/?utm_source=inbox\";s:18:\"url_is_admin_query\";b:0;s:10:\"is_primary\";b:1;s:6:\"status\";s:8:\"actioned\";}}s:5:\"rules\";a:4:{i:0;O:8:\"stdClass\":4:{s:4:\"type\";s:12:\"stored_state\";s:5:\"index\";s:22:\"there_were_no_products\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";b:1;}i:1;O:8:\"stdClass\":4:{s:4:\"type\";s:12:\"stored_state\";s:5:\"index\";s:22:\"there_are_now_products\";s:9:\"operation\";s:1:\"=\";s:5:\"value\";b:1;}i:2;O:8:\"stdClass\":3:{s:4:\"type\";s:13:\"product_count\";s:9:\"operation\";s:2:\">=\";s:5:\"value\";i:1;}i:3;O:8:\"stdClass\":4:{s:4:\"type\";s:18:\"onboarding_profile\";s:5:\"index\";s:13:\"product_types\";s:9:\"operation\";s:8:\"contains\";s:5:\"value\";s:8:\"physical\";}}}}', 'yes'), (534, 'woocommerce_admin_version', '1.8.3', 'yes'), @@ -1607,8 +1603,6 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (543, '_site_transient_browser_4853ba0b18950b426d4c3572e2139b70', 'a:10:{s:4:\"name\";s:6:\"Safari\";s:7:\"version\";s:4:\"14.0\";s:8:\"platform\";s:9:\"Macintosh\";s:10:\"update_url\";s:29:\"https://www.apple.com/safari/\";s:7:\"img_src\";s:43:\"http://s.w.org/images/browsers/safari.png?1\";s:11:\"img_src_ssl\";s:44:\"https://s.w.org/images/browsers/safari.png?1\";s:15:\"current_version\";s:2:\"11\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}', 'no'), (562, 'WPLANG', 'pt_BR', 'yes'), (563, 'new_admin_email', 'test-wordpress@jadlog.com.br', 'yes'), -(568, '_transient_timeout_orders-all-statuses', '1612195440', 'no'), -(569, '_transient_orders-all-statuses', 'a:2:{s:7:\"version\";s:10:\"1611590165\";s:5:\"value\";a:1:{i:0;s:13:\"wc-processing\";}}', 'no'), (572, '_transient_timeout_wc_report_orders_stats_d591e814c715710ad79c48dfbe26ad48', '1612195443', 'no'), (573, '_transient_wc_report_orders_stats_d591e814c715710ad79c48dfbe26ad48', 'a:2:{s:7:\"version\";s:10:\"1611590165\";s:5:\"value\";O:8:\"stdClass\":5:{s:6:\"totals\";O:8:\"stdClass\":15:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"products\";i:0;s:8:\"segments\";a:0:{}}s:9:\"intervals\";a:1:{i:0;a:6:{s:8:\"interval\";s:7:\"2020-04\";s:10:\"date_start\";s:19:\"2020-01-19 21:00:00\";s:14:\"date_start_gmt\";s:19:\"2020-01-20 00:00:00\";s:8:\"date_end\";s:19:\"2020-01-25 23:59:59\";s:12:\"date_end_gmt\";s:19:\"2020-01-26 02:59:59\";s:9:\"subtotals\";O:8:\"stdClass\":14:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"segments\";a:0:{}}}}s:5:\"total\";i:4;s:5:\"pages\";i:1;s:7:\"page_no\";i:1;}}', 'no'), (574, '_transient_timeout_wc_report_orders_stats_9a34979ec8d5ffd55b2a1fad1bfe2f3c', '1612195444', 'no'), @@ -1644,13 +1638,6 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (603, '_transient_wc_report_orders_stats_8de3dc8a943c644a92b1e843def49dfa', 'a:2:{s:7:\"version\";s:10:\"1611590165\";s:5:\"value\";O:8:\"stdClass\":5:{s:6:\"totals\";O:8:\"stdClass\":15:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"products\";i:0;s:8:\"segments\";a:0:{}}s:9:\"intervals\";a:1:{i:0;a:6:{s:8:\"interval\";s:7:\"2021-05\";s:10:\"date_start\";s:19:\"2021-01-25 00:00:00\";s:14:\"date_start_gmt\";s:19:\"2021-01-25 03:00:00\";s:8:\"date_end\";s:19:\"2021-01-25 13:04:00\";s:12:\"date_end_gmt\";s:19:\"2021-01-25 16:04:00\";s:9:\"subtotals\";O:8:\"stdClass\":14:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"segments\";a:0:{}}}}s:5:\"total\";i:1;s:5:\"pages\";i:1;s:7:\"page_no\";i:1;}}', 'no'), (604, '_transient_timeout_wc_report_orders_stats_afbc0680cc9fa61e4619d1662cc5db76', '1612195448', 'no'), (605, '_transient_wc_report_orders_stats_afbc0680cc9fa61e4619d1662cc5db76', 'a:2:{s:7:\"version\";s:10:\"1611590165\";s:5:\"value\";O:8:\"stdClass\":5:{s:6:\"totals\";O:8:\"stdClass\":15:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"products\";i:0;s:8:\"segments\";a:0:{}}s:9:\"intervals\";a:1:{i:0;a:6:{s:8:\"interval\";s:7:\"2021-05\";s:10:\"date_start\";s:19:\"2021-01-25 00:00:00\";s:14:\"date_start_gmt\";s:19:\"2021-01-25 03:00:00\";s:8:\"date_end\";s:19:\"2021-01-25 13:04:00\";s:12:\"date_end_gmt\";s:19:\"2021-01-25 16:04:00\";s:9:\"subtotals\";O:8:\"stdClass\":14:{s:12:\"orders_count\";i:0;s:14:\"num_items_sold\";i:0;s:11:\"gross_sales\";d:0;s:11:\"total_sales\";d:0;s:7:\"coupons\";d:0;s:13:\"coupons_count\";i:0;s:7:\"refunds\";d:0;s:5:\"taxes\";d:0;s:8:\"shipping\";d:0;s:11:\"net_revenue\";d:0;s:19:\"avg_items_per_order\";d:0;s:15:\"avg_order_value\";d:0;s:15:\"total_customers\";i:0;s:8:\"segments\";a:0:{}}}}s:5:\"total\";i:1;s:5:\"pages\";i:1;s:7:\"page_no\";i:1;}}', 'no'), -(616, '_transient_timeout__woocommerce_helper_subscriptions', '1611776316', 'no'), -(617, '_transient__woocommerce_helper_subscriptions', 'a:0:{}', 'no'), -(618, '_site_transient_timeout_theme_roots', '1611777216', 'no'), -(619, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), -(620, '_transient_timeout__woocommerce_helper_updates', '1611818616', 'no'), -(621, '_transient__woocommerce_helper_updates', 'a:4:{s:4:\"hash\";s:32:\"d751713988987e9331980363e24189ce\";s:7:\"updated\";i:1611775416;s:8:\"products\";a:0:{}s:6:\"errors\";a:1:{i:0;s:10:\"http-error\";}}', 'no'), -(622, 'admin_email_lifespan', '1627327416', 'yes'), (623, 'disallowed_keys', '', 'no'), (624, 'comment_previously_approved', '1', 'yes'), (625, 'auto_plugin_theme_update_emails', 'a:0:{}', 'no'), @@ -1658,12 +1645,57 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (627, 'auto_update_core_minor', 'enabled', 'yes'), (628, 'auto_update_core_major', 'unset', 'yes'), (629, 'db_upgraded', '', 'yes'), -(632, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:63:\"https://downloads.wordpress.org/release/pt_BR/wordpress-5.6.zip\";s:6:\"locale\";s:5:\"pt_BR\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:63:\"https://downloads.wordpress.org/release/pt_BR/wordpress-5.6.zip\";s:10:\"no_content\";s:0:\"\";s:11:\"new_bundled\";s:0:\"\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:3:\"5.6\";s:7:\"version\";s:3:\"5.6\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1611775443;s:15:\"version_checked\";s:3:\"5.6\";s:12:\"translations\";a:0:{}}', 'no'), -(633, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1611775444;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.8\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.0\";}s:8:\"response\";a:2:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"1.9\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.1.9.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.1\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.1.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:9:\"no_update\";a:1:{s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.6\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.6.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}}s:12:\"translations\";a:0:{}}', 'no'), -(634, '_site_transient_update_plugins', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1611775445;s:7:\"checked\";a:5:{s:19:\"akismet/akismet.php\";s:5:\"4.1.7\";s:93:\"woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php\";s:5:\"3.7.2\";s:9:\"hello.php\";s:5:\"1.7.2\";s:27:\"woocommerce/woocommerce.php\";s:5:\"4.9.1\";s:41:\"woocommerce-jadlog/woocommerce-jadlog.php\";s:5:\"0.2.1\";}s:8:\"response\";a:2:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:5:\"4.1.8\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/akismet.4.1.8.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:59:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=969272\";s:2:\"1x\";s:59:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=969272\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:61:\"https://ps.w.org/akismet/assets/banner-772x250.jpg?rev=479904\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:3:\"5.6\";s:12:\"requires_php\";b:0;s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:27:\"woocommerce/woocommerce.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:25:\"w.org/plugins/woocommerce\";s:4:\"slug\";s:11:\"woocommerce\";s:6:\"plugin\";s:27:\"woocommerce/woocommerce.php\";s:11:\"new_version\";s:5:\"4.9.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/woocommerce/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/woocommerce.4.9.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/woocommerce/assets/icon-256x256.png?rev=2366418\";s:2:\"1x\";s:64:\"https://ps.w.org/woocommerce/assets/icon-128x128.png?rev=2366418\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/woocommerce/assets/banner-1544x500.png?rev=2366418\";s:2:\"1x\";s:66:\"https://ps.w.org/woocommerce/assets/banner-772x250.png?rev=2366418\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:3:\"5.6\";s:12:\"requires_php\";s:3:\"7.0\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:2:{s:93:\"woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:58:\"w.org/plugins/woocommerce-extra-checkout-fields-for-brazil\";s:4:\"slug\";s:44:\"woocommerce-extra-checkout-fields-for-brazil\";s:6:\"plugin\";s:93:\"woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php\";s:11:\"new_version\";s:5:\"3.7.2\";s:3:\"url\";s:75:\"https://wordpress.org/plugins/woocommerce-extra-checkout-fields-for-brazil/\";s:7:\"package\";s:93:\"https://downloads.wordpress.org/plugin/woocommerce-extra-checkout-fields-for-brazil.3.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:97:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/icon-256x256.png?rev=1356956\";s:2:\"1x\";s:97:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/icon-128x128.png?rev=1356956\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:100:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/banner-1544x500.png?rev=1356956\";s:2:\"1x\";s:99:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/banner-772x250.png?rev=1356956\";}s:11:\"banners_rtl\";a:0:{}}s:9:\"hello.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}}}}', 'no'), -(638, '_transient_timeout_wc_onboarding_product_data', '1611861847', 'no'); +(632, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:3:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:65:\"https://downloads.wordpress.org/release/pt_BR/wordpress-5.6.2.zip\";s:6:\"locale\";s:5:\"pt_BR\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:65:\"https://downloads.wordpress.org/release/pt_BR/wordpress-5.6.2.zip\";s:10:\"no_content\";s:0:\"\";s:11:\"new_bundled\";s:0:\"\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.6.2\";s:7:\"version\";s:5:\"5.6.2\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}i:1;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.2.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.2.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.6.2-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.6.2-new-bundled.zip\";s:7:\"partial\";s:69:\"https://downloads.wordpress.org/release/wordpress-5.6.2-partial-1.zip\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.6.2\";s:7:\"version\";s:5:\"5.6.2\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:5:\"5.6.1\";}i:2;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.2.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.2.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.6.2-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.6.2-new-bundled.zip\";s:7:\"partial\";s:69:\"https://downloads.wordpress.org/release/wordpress-5.6.2-partial-1.zip\";s:8:\"rollback\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.6.2-rollback-1.zip\";}s:7:\"current\";s:5:\"5.6.2\";s:7:\"version\";s:5:\"5.6.2\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:5:\"5.6.1\";s:9:\"new_files\";s:0:\"\";}}s:12:\"last_checked\";i:1614119581;s:15:\"version_checked\";s:5:\"5.6.1\";s:12:\"translations\";a:1:{i:0;a:7:{s:4:\"type\";s:4:\"core\";s:4:\"slug\";s:7:\"default\";s:8:\"language\";s:5:\"pt_BR\";s:7:\"version\";s:5:\"5.6.1\";s:7:\"updated\";s:19:\"2021-02-05 15:31:08\";s:7:\"package\";s:64:\"https://downloads.wordpress.org/translation/core/5.6.1/pt_BR.zip\";s:10:\"autoupdate\";b:1;}}}', 'no'), +(633, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1614119582;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.9\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.1\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"1.9\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.1.9.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.6\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.6.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.1\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.1.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}', 'no'); INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(639, '_transient_wc_onboarding_product_data', 'a:6:{s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:17:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 27 Jan 2021 19:24:07 GMT\";s:12:\"content-type\";s:31:\"application/json; charset=UTF-8\";s:14:\"content-length\";s:5:\"11461\";s:12:\"x-robots-tag\";s:7:\"noindex\";s:4:\"link\";s:60:\"; rel=\"https://api.w.org/\"\";s:22:\"x-content-type-options\";s:7:\"nosniff\";s:29:\"access-control-expose-headers\";s:33:\"X-WP-Total, X-WP-TotalPages, Link\";s:28:\"access-control-allow-headers\";s:73:\"Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\";s:13:\"cache-control\";s:10:\"max-age=60\";s:5:\"allow\";s:3:\"GET\";s:16:\"content-encoding\";s:4:\"gzip\";s:4:\"x-rq\";s:16:\"gru2 86 193 3089\";s:3:\"age\";s:2:\"15\";s:7:\"x-cache\";s:3:\"hit\";s:4:\"vary\";s:23:\"Accept-Encoding, Origin\";s:13:\"accept-ranges\";s:5:\"bytes\";}}s:4:\"body\";s:48093:\"{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Get live rates, discounted labels, tracking numbers, and more \\u2013 without leaving your dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/wooapplogoretina.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876}]}\";s:8:\"response\";a:2:{s:4:\"code\";i:200;s:7:\"message\";s:2:\"OK\";}s:7:\"cookies\";a:0:{}s:8:\"filename\";N;s:13:\"http_response\";O:25:\"WP_HTTP_Requests_Response\":5:{s:11:\"\0*\0response\";O:17:\"Requests_Response\":10:{s:4:\"body\";s:48093:\"{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Get live rates, discounted labels, tracking numbers, and more \\u2013 without leaving your dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/wooapplogoretina.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876}]}\";s:3:\"raw\";s:48711:\"HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Wed, 27 Jan 2021 19:24:07 GMT\r\nContent-Type: application/json; charset=UTF-8\r\nContent-Length: 11461\r\nConnection: close\r\nX-Robots-Tag: noindex\r\nLink: ; rel=\"https://api.w.org/\"\r\nX-Content-Type-Options: nosniff\r\nAccess-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages, Link\r\nAccess-Control-Allow-Headers: Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\r\nCache-Control: max-age=60\r\nAllow: GET\r\nContent-Encoding: gzip\r\nX-rq: gru2 86 193 3089\r\nAge: 15\r\nX-Cache: hit\r\nVary: Accept-Encoding, Origin\r\nAccept-Ranges: bytes\r\n\r\n{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Get live rates, discounted labels, tracking numbers, and more \\u2013 without leaving your dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/wooapplogoretina.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876}]}\";s:7:\"headers\";O:25:\"Requests_Response_Headers\":1:{s:7:\"\0*\0data\";a:17:{s:6:\"server\";a:1:{i:0;s:5:\"nginx\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 27 Jan 2021 19:24:07 GMT\";}s:12:\"content-type\";a:1:{i:0;s:31:\"application/json; charset=UTF-8\";}s:14:\"content-length\";a:1:{i:0;s:5:\"11461\";}s:12:\"x-robots-tag\";a:1:{i:0;s:7:\"noindex\";}s:4:\"link\";a:1:{i:0;s:60:\"; rel=\"https://api.w.org/\"\";}s:22:\"x-content-type-options\";a:1:{i:0;s:7:\"nosniff\";}s:29:\"access-control-expose-headers\";a:1:{i:0;s:33:\"X-WP-Total, X-WP-TotalPages, Link\";}s:28:\"access-control-allow-headers\";a:1:{i:0;s:73:\"Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\";}s:13:\"cache-control\";a:1:{i:0;s:10:\"max-age=60\";}s:5:\"allow\";a:1:{i:0;s:3:\"GET\";}s:16:\"content-encoding\";a:1:{i:0;s:4:\"gzip\";}s:4:\"x-rq\";a:1:{i:0;s:16:\"gru2 86 193 3089\";}s:3:\"age\";a:1:{i:0;s:2:\"15\";}s:7:\"x-cache\";a:1:{i:0;s:3:\"hit\";}s:4:\"vary\";a:1:{i:0;s:23:\"Accept-Encoding, Origin\";}s:13:\"accept-ranges\";a:1:{i:0;s:5:\"bytes\";}}}s:11:\"status_code\";i:200;s:16:\"protocol_version\";d:1.1;s:7:\"success\";b:1;s:9:\"redirects\";i:0;s:3:\"url\";s:59:\"https://woocommerce.com/wp-json/wccom-extensions/1.0/search\";s:7:\"history\";a:0:{}s:7:\"cookies\";O:19:\"Requests_Cookie_Jar\":1:{s:10:\"\0*\0cookies\";a:0:{}}}s:11:\"\0*\0filename\";N;s:4:\"data\";N;s:7:\"headers\";N;s:6:\"status\";N;}}', 'no'); +(634, '_site_transient_update_plugins', 'O:8:\"stdClass\":4:{s:12:\"last_checked\";i:1614119581;s:8:\"response\";a:1:{s:27:\"woocommerce/woocommerce.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:25:\"w.org/plugins/woocommerce\";s:4:\"slug\";s:11:\"woocommerce\";s:6:\"plugin\";s:27:\"woocommerce/woocommerce.php\";s:11:\"new_version\";s:5:\"5.0.0\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/woocommerce/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/woocommerce.5.0.0.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/woocommerce/assets/icon-256x256.png?rev=2366418\";s:2:\"1x\";s:64:\"https://ps.w.org/woocommerce/assets/icon-128x128.png?rev=2366418\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:67:\"https://ps.w.org/woocommerce/assets/banner-1544x500.png?rev=2366418\";s:2:\"1x\";s:66:\"https://ps.w.org/woocommerce/assets/banner-772x250.png?rev=2366418\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.2\";s:12:\"requires_php\";s:3:\"7.0\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:3:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:5:\"4.1.8\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/akismet.4.1.8.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:59:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=969272\";s:2:\"1x\";s:59:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=969272\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:61:\"https://ps.w.org/akismet/assets/banner-772x250.jpg?rev=479904\";}s:11:\"banners_rtl\";a:0:{}}s:93:\"woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:58:\"w.org/plugins/woocommerce-extra-checkout-fields-for-brazil\";s:4:\"slug\";s:44:\"woocommerce-extra-checkout-fields-for-brazil\";s:6:\"plugin\";s:93:\"woocommerce-extra-checkout-fields-for-brazil/woocommerce-extra-checkout-fields-for-brazil.php\";s:11:\"new_version\";s:5:\"3.7.2\";s:3:\"url\";s:75:\"https://wordpress.org/plugins/woocommerce-extra-checkout-fields-for-brazil/\";s:7:\"package\";s:93:\"https://downloads.wordpress.org/plugin/woocommerce-extra-checkout-fields-for-brazil.3.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:97:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/icon-256x256.png?rev=1356956\";s:2:\"1x\";s:97:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/icon-128x128.png?rev=1356956\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:100:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/banner-1544x500.png?rev=1356956\";s:2:\"1x\";s:99:\"https://ps.w.org/woocommerce-extra-checkout-fields-for-brazil/assets/banner-772x250.png?rev=1356956\";}s:11:\"banners_rtl\";a:0:{}}s:9:\"hello.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}}}}', 'no'), +(640, 'admin_email_lifespan', '2533080438', 'yes'), +(641, '_transient_doing_cron', '1614120080', 'yes'), +(642, '_transient_timeout__woocommerce_helper_subscriptions', '1614120481', 'no'), +(643, '_transient__woocommerce_helper_subscriptions', 'a:0:{}', 'no'), +(644, '_site_transient_timeout_theme_roots', '1614121381', 'no'), +(645, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), +(646, '_transient_timeout__woocommerce_helper_updates', '1614162781', 'no'), +(647, '_transient__woocommerce_helper_updates', 'a:4:{s:4:\"hash\";s:32:\"d751713988987e9331980363e24189ce\";s:7:\"updated\";i:1614119581;s:8:\"products\";a:0:{}s:6:\"errors\";a:1:{i:0;s:10:\"http-error\";}}', 'no'), +(648, '_site_transient_timeout_browser_915fe5f49a696a6a12f1f7d93c029921', '1614724383', 'no'), +(649, '_site_transient_browser_915fe5f49a696a6a12f1f7d93c029921', 'a:10:{s:4:\"name\";s:6:\"Chrome\";s:7:\"version\";s:12:\"87.0.4280.66\";s:8:\"platform\";s:5:\"Linux\";s:10:\"update_url\";s:29:\"https://www.google.com/chrome\";s:7:\"img_src\";s:43:\"http://s.w.org/images/browsers/chrome.png?1\";s:11:\"img_src_ssl\";s:44:\"https://s.w.org/images/browsers/chrome.png?1\";s:15:\"current_version\";s:2:\"18\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}', 'no'), +(650, '_site_transient_timeout_php_check_2bd835122fdc4f0e2ce94cd2e6f48f9d', '1614724384', 'no'), +(651, '_site_transient_php_check_2bd835122fdc4f0e2ce94cd2e6f48f9d', 'a:5:{s:19:\"recommended_version\";s:3:\"7.4\";s:15:\"minimum_version\";s:6:\"5.6.20\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}', 'no'), +(652, '_transient_timeout_wc_low_stock_count', '1616711584', 'no'), +(653, '_transient_wc_low_stock_count', '0', 'no'), +(654, '_transient_timeout_wc_outofstock_count', '1616711584', 'no'), +(655, '_transient_wc_outofstock_count', '0', 'no'), +(656, '_transient_timeout_wc_report_sales_by_date', '1614205984', 'no'), +(657, '_transient_wc_report_sales_by_date', 'a:8:{s:32:\"34ece6f9b17a2cbccccf7f22dad9a603\";a:0:{}s:32:\"27e387cb8d8db973e9b04c8e28a078de\";a:0:{}s:32:\"57d37d09c6254a21e6d9b55258ed0a60\";a:0:{}s:32:\"66d9e04c17b1e6c93e8b4eb91e37b870\";N;s:32:\"a649f0b3942db6568659f76333d6c1c2\";a:0:{}s:32:\"eb002b1b428728a4b88d6da924ed17a0\";a:0:{}s:32:\"41348fb9b81f7d7caa844182e9d7949c\";a:0:{}s:32:\"f7315c0d6f7af8c2d121e6a0d48a1afb\";a:0:{}}', 'no'), +(658, '_transient_timeout_wc_admin_report', '1614205984', 'no'), +(659, '_transient_wc_admin_report', 'a:1:{s:32:\"7aef6e0b3be6664946e35eb84fb3e6e8\";a:0:{}}', 'no'), +(660, '_site_transient_timeout_community-events-bf177db4cdd8a3d4c99b4463854de2bd', '1614162793', 'no'), +(661, '_site_transient_community-events-bf177db4cdd8a3d4c99b4463854de2bd', 'a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:10:\"172.19.0.0\";}s:6:\"events\";a:2:{i:0;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:45:\"Discussion Group: Introduction to Open-Source\";s:3:\"url\";s:68:\"https://www.meetup.com/learn-wordpress-discussions/events/276457358/\";s:6:\"meetup\";s:27:\"Learn WordPress Discussions\";s:10:\"meetup_url\";s:51:\"https://www.meetup.com/learn-wordpress-discussions/\";s:4:\"date\";s:19:\"2021-02-23 02:00:00\";s:8:\"end_date\";s:19:\"2021-02-23 03:00:00\";s:20:\"start_unix_timestamp\";i:1614074400;s:18:\"end_unix_timestamp\";i:1614078000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:37.779998779297;s:9:\"longitude\";d:-122.41999816895;}}i:1;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:15:\"WordCamp Prague\";s:3:\"url\";s:33:\"https://prague.wordcamp.org/2021/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2021-02-27 10:00:00\";s:8:\"end_date\";s:19:\"2021-02-27 10:00:00\";s:20:\"start_unix_timestamp\";i:1614416400;s:18:\"end_unix_timestamp\";i:1614416400;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"CZ\";s:8:\"latitude\";d:50.0755381;s:9:\"longitude\";d:14.4378005;}}}}', 'no'), +(662, 'can_compress_scripts', '0', 'no'), +(663, '_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3', '1614162795', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(664, '_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:49:\"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"News – – WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 21:15:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-US\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=5.8-alpha-50428\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:10:{i:0;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"WordPress 5.7 Release Candidate\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/02/wordpress-5-7-release-candidate/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 21:07:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9773\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:374:\"The first release candidate for WordPress 5.7 is now available! 🎉 Please join us in celebrating this very important milestone in the community’s progress towards the final release! “Release Candidate” means that the new version is ready for release, but with millions of users and thousands of plugins and themes, it’s possible something was missed. […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:3752:\"\n

The first release candidate for WordPress 5.7 is now available! \"🎉\"

\n\n\n\n

Please join us in celebrating this very important milestone in the community’s progress towards the final release!

\n\n\n\n

“Release Candidate” means that the new version is ready for release, but with millions of users and thousands of plugins and themes, it’s possible something was missed. WordPress 5.7 is slated for release on March 9, 2021, but your help is needed to get there—if you haven’t tried 5.7 yet, now is the time!

\n\n\n\n

You can test the WordPress 5.7 release candidate in two ways:

\n\n\n\n\n\n\n\n

Thank you to all of the contributors who tested the Beta releases and gave feedback. Testing for bugs is a critical part of polishing every release and a great way to contribute to WordPress.

\n\n\n\n

What’s in WordPress 5.7?

\n\n\n\n
  • Robots API and Media Search Engine Visibility
  • Detect HTTPS support
  • Lazy-load iframes
  • jQuery migrate-related Deprecation notice clean-up
  • Admin color palette standardization
  • The newest version of the Gutenberg plugin
\n\n\n\n

Plugin and Theme Developers

\n\n\n\n

Please test your plugins and themes against WordPress 5.7 and update the Tested up to version in the readme file to 5.7. If you find compatibility problems, please be sure to post to the support forums, so those can be figured out before the final release.

\n\n\n\n

The WordPress 5.7 Field Guide will give you a more detailed dive into the major changes.

\n\n\n\n

How to Help

\n\n\n\n

Do you speak a language other than English? Help us translate WordPress into more than 100 languages! This release also marks the hard string freeze point of the 5.7 release schedule.

\n\n\n\n

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.

\n\n\n\n

Props to @audrasjb for copy suggestions and @davidbaumwald for final review.

\n\n\n\n
\n\n\n\n

Test this test that
Catch everything that you can
Before it’s live…
\"🤯\"

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9773\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 5.6.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/wordpress-5-6-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 22 Feb 2021 15:35:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9764\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:452:\"WordPress 5.6.2 is now available! This maintenance release includes 5 bug fixes. These bugs affect WordPress version 5.6.1, so you’ll want to upgrade. You can download WordPress 5.6.2 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process. WordPress 5.6.2 is a small maintenance release focused […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5124:\"\n

WordPress 5.6.2 is now available!

\n\n\n\n

This maintenance release includes 5 bug fixes. These bugs affect WordPress version 5.6.1, so you’ll want to upgrade.

\n\n\n\n

You can download WordPress 5.6.2 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process.

\n\n\n\n

WordPress 5.6.2 is a small maintenance release focused on fixing user-facing issues discovered in 5.6.1. The next major release will be version 5.7, currently scheduled for release on March 9, 2021.

\n\n\n\n

To see a full list of changes, you can browse the list on Trac, read the 5.6.2 RC1 post, or visit the 5.6.2 documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.6.2 release was led by @desrosj. Special props to @isabel_brison and @talldanwp for helping to prepare the block editor related fixes, and @audrasjb and @sergeybiryukov for helping with other release related tasks.

\n\n\n\n

Props to everyone who helped make WordPress 5.6.2 happen:

\n\n\n\n

aaronrobertshaw, Addie, André Maneiro, archon810, Ari Stathopoulos, bartosz777, Bernhard Reiter, Daniel Richards, David Anderson, dbtedg, glendaviesnz, hmabpera, ibiza69, Isabel Brison, Jason Ryan, Jb Audras, Juliette Reinders Folmer, Kai Hao, Kerry Liu, Konrad Chmielewski, Jorge Costa, magnuswebdesign, Marius L. J., Matt Wiebe, Mukesh Panchal, Paal Joachim Romdahl, Prem Tiwari, Q, Riad Benguella, Robert Anderson, roger995, Sergey Biryukov, Sergey Yakimov, Steven Stern (sterndata), Takashi Kitajima, tonysandwich, worldedu, Yui.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9764\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:66:\"\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"Reflecting on Gutenberg’s 100th Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://wordpress.org/news/2021/02/reflecting-on-gutenbergs-100th-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 19 Feb 2021 18:34:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:7:\"General\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:13:\"Uncategorized\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9750\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:227:\"Gutenberg 10.0 released this week, February 17, 2021, marking the 100th release of the Gutenberg plugin; the 100th release of a journey that started more than four years ago when Matt announced the project at WordCamp US 2016. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Riad Benguella\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:3881:\"\n
\"\"\"\"
1.0 to 10.0
\n\n\n\n

Gutenberg 10.0 released this week, February 17, 2021, marking the 100th release of the Gutenberg plugin; the 100th release of a journey that started more than four years ago when Matt announced the project at WordCamp US 2016. 

\n\n\n\n

Where We Started

\n\n\n\n

The past four years have not always been an easy journey. Shipping something this impactful is not easy, and there was precedent for keeping the editor as it was: WordPress had already tried to replace TinyMCE a couple of times already. What would be different this time around? The worry was “not much” and initially, very few people actively joined the project.

\n\n\n\n

Six months later came WordCamp Europe 2017 and the first release of the plugin. The editor was nowhere close to being usable, but it “clicked” for some. The reactions to the presentation were hopeful, but afterward, there was a lot of pushback.

\n\n\n\n

Gutenberg was (and is) an audacious project. With a project this big it attracted a lot of attention, and it became difficult to discern constructive debate from mere opposition. We each come with our context, and some people had a fixed idea about what they wanted for the project. Some wanted to reuse an existing page builder, others wanted to revive the Fields API project, some wanted it to be front-end-first, others wanted it just to replace the classic editor’s content area, some wanted it to be in Vue.JS, others wanted no change at all. With a product used by 40% of the web, you hope to find consensus, and when compromises have to be made, it can be difficult for those involved to avoid feeling that their voice is being ignored.

\n\n\n\n

We have also made quite a few mistakes: stability wasn’t great in some releases, performance suffered in others, and accessibility as well. But we kept pushing forward, using feedback to improve the editor and the project in all aspects until its first inclusion in WordPress 5.0, and we’re still working to improve it today.

\n\n\n\n

Where We Are

\n\n\n\n

It’s a delight to see some people who strongly disagreed with the initial vision or approach to Gutenberg gradually come to enjoy using the editor and join the project to carry on its vision. Others might still not like it; some won’t ever use it. One thing is certain; we’ll continue doing our best to push forward, improve what’s already shipped, and ship new exciting features. We’ll continue making mistakes and hopefully continue learning from them.

\n\n\n\n

Wednesday marked the 100th release of Gutenberg, and while that looks remarkable on the outside, the release itself holds what all the other releases did. It holds improvements to the existing features, it fixes bugs that users reported, adds new features, and it highlights experiments with new ideas.

\n\n\n\n

What is remarkable about the release is the people. The ones who were with us from the start, the ones who were with us but left, the ones who joined in our journey, everyone who helped along the way, everyone who provided feedback, everyone who got their hands dirty, and everyone who tried to use this editor, extend it and provide ideas.

\n\n\n\n

Thank you all.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9750\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 5.7 Beta 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 16 Feb 2021 21:25:34 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9727\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:335:\"WordPress 5.7 Beta 3 is now available for testing! 🗣 This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it. You can test the WordPress 5.7 Beta 3 in two ways: Install/activate the WordPress Beta Tester plugin (select […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4891:\"\n

WordPress 5.7 Beta 3 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it.

\n\n\n\n

You can test the WordPress 5.7 Beta 3 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just three weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

Some Highlights

\n\n\n\n

Since Beta 2, 27 bugs have been fixed. Here is a summary of some of the included changes:

\n\n\n\n
  • Adjusted color contrast on various admin buttons to improve accessibility and readability (#52402)
  • Several fixes for the Twenty Twenty-One theme (#52287, #52377, #52431, #52500, #52502, #52412)
  • Replaced editor typeface with system fonts to improve privacy and performance (#46169)
  • Added i18n support to register_block_type_from_metadata function (#52301)
  • Media upload errors are now more accessible (#47120)
  • New filter to modify how pagination links are rendered when using paginate_links function (#44018)
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 171 tickets in WordPress 5.7, including 64 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @audrasjb and @lukecarbis for your peer revisions.

\n\n\n\n
\n\n\n\n

Finish line ahead
Defects in focus
We are almost there…

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9727\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:72:\"\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"People of WordPress: Pooja Derashri\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/02/people-of-wordpress-pooja-derashri/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 11 Feb 2021 23:10:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:6:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:10:\"Interviews\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:16:\"ContributorStory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:9:\"HeroPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:5;a:5:{s:4:\"data\";s:19:\"People of WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9652\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"Pooja Derashri shares the story of how she went from being an introverted girl from a small village in India to becoming a developer, thanks to the WordPress community. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10697:\"\n

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n
\"Pooja
\n\n\n\n

Pooja Derashri shares the story of how she went from being an introvert from a small village in India to becoming a developer and working on international projects, thanks to the WordPress community. 

\n\n\n\n

As her interest grew, Pooja started following some WordPress-based groups on Facebook, where she first heard about conference-style WordPress events known as WordCamps. She later joined her first WordCamp in Ahmedabad, India. This three day event in 2017 opened up a new world—the WordPress community—and what would become a life changing moment. “WordCamp Ahmedabad has one of the best WordPress communities in India,” she said, “and everyone, including organizers and attendees were so humble and welcoming.”

\n\n\n\n
\"\"
\n\n\n\n

The thirst for learning

\n\n\n\n

A fascination with how things worked and a desire never stop learning were traits that shone through in Pooja from a young age. She moved from Banera, a rural village in India, to a nearby city, where she lived with her uncle while completing her higher education. With her enthusiasm for learning, she decided to become an engineer. When thinking back on that time she says, “Being from a rural background, people in my village tended not to be keen on the idea of sending their girl child to another city for further studies. Fortunately, that was not the case for me because my parents were immensely supportive of me and my interests. They’ve always encouraged me to believe in myself and fulfill my dreams. With their support, I pursued my engineering in electronics and communication.”

\n\n\n\n

Discovering the opportunities in web development 

\n\n\n\n

On completing her engineering training, Pooja was not sure what to do next. One of her friends suggested that she should explore web development. The idea intrigued her, and she sought out learning resources to study. She also secured an internship as a PHP Developer to give herself the chance to learn alongside professionals in the field.

\n\n\n\n

Getting started with WordPress

\n\n\n\n

“I found WordPress surpassed other platforms. The vast knowledge base made it easy for me to learn.” – Pooja

\n\n\n\n

This internship led Pooja to her first job where she discovered a range of content management systems. Her view of the opportunities offered by these systems changed when the manager assigned her a small project using the WordPress platform. 

\n\n\n\n

She recalls: “I found WordPress surpassed other platforms I had worked on earlier. The vast knowledge base made it easy for me to learn.” She soon became comfortable managing WordPress, working with plugins and themes, and wanted to learn it more in-depth.

\n\n\n\n

Pooja soon joined WPVibes as its first team member. Being part of a new startup gave her a lot of experience and a chance to be involved in new processes. As the company expanded they started providing custom plugin development services per the client’s requirement and created some free and paid plugins. Pooja said, “We found it very exciting and productive. Today, we are a team of 10.”

\n\n\n\n

Encouragement from the WordPress community

\n\n\n\n

Contributing to WordPress increases your knowledge

\n\n\n\n

At the event, she was able to listen to speakers from India and abroad, many of whom shared their journey with WordPress and how it had changed their lives. “One of the most inspiring sessions was by Rahul Bansal,” she said. “He talked about contributing to WordPress and giving back to the community. He also explained how contributing to WordPress can help you to enhance your knowledge. It inspired me to contribute to WordPress.”

\n\n\n\n

The WordPress community of Ahmedabad continued to inspire Pooja and her husband Anand Upadhyay, and they later started a Meetup group in their home city of Ajmer as part of their contribution to the community. They continue to be involved in supporting local users through the Ajmer Meetup.

\n\n\n\n
\"Pooja
\n\n\n\n

At the next WordCamp Pooja attended, she joined its contributor day, which brings users together to give back to the open source platform and global community. Most of the contributors she met were interested in giving time to the WordPress CMS. She decided to venture into a different path and took her first steps by joining the WordPress TV group, where you can explore videos from WordPress events across the world. She also discovered the joy of translating into her local language, and is a Polyglot contributor for the Hindi language.

\n\n\n\n

In 2019, she was selected as a volunteer for WordCamp Asia in Bangkok, Thailand, and it became an impetus to become even more involved with the community. She was very excited about this role, and to be part of her first WordCamp outside India. Sadly, due to the global COVID pandemic, the event had to be cancelled. Her enthusiasm has not diminished and she is eagerly waiting to support in-person WordCamps in the future and meet even more members of the global community.

\n\n\n\n

Her determination to be part of making WordPress and sharing skills has only increased, which has led to contribute to the WordPress Training team. This team manages lesson plans and prepares content to support people who are training others to use WordPress. The team recently joined a few other teams to launch Learn WordPress, which brings learning materials together for users of all levels, and Pooja contributed to two different teams during the project.

\n\n\n\n

Message to the WordPress Community

\n\n\n\n

Pooja is eager to share her belief in the power for good in the WordPress community. “There is a huge community to help you with your learning, so start learning and try to give back to the community. It doesn’t matter if you are not comfortable with programming, there are many different ways in which you can contribute.” 

\n\n\n\n

“What I have learned in my life is that it doesn’t matter from where you came and what background you have. All that matters is your hard work and positive attitude towards life.”

\n\n\n\n

Read more stories in the People of WordPress series.

\n\n\n\n

Contributors

\n\n\n\n

Thanks to Abha Thakor (@webcommsat) and Nalini Thakor (@nalininonstopnewsuk) for writing this story, and to Surendra Thakor (@sthakor), Josepha Haden (@chanthaboune), Meher Bala (@meher), Chloé Bringmann (@cbringmann), Olga Glekler (@oglekler), Christopher Churchill (@vimes1984), Larissa Murillo (@lmurillom), and Yvette Sonneveld (@yvettesonneveld) for work on the series this month. Thank you also to Pooja Derashri (@webtechpooja) for sharing her #ContributorStory.

\n\n\n\n
\n
\n
\"HeroPress
\n

This post is based on an article originally published on HeroPress.com, an initiative focused around people in the WordPress community created by Topher DeRosia.

\n
\n
\n
\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9652\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 5.7 Beta 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 09 Feb 2021 20:42:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9688\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:335:\"WordPress 5.7 Beta 2 is now available for testing! 🗣 This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it. You can test the WordPress 5.7 Beta 2 in two ways: Install/activate the WordPress Beta Tester plugin (select […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5291:\"\n

WordPress 5.7 Beta 2 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it.

\n\n\n\n

You can test the WordPress 5.7 Beta 2 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just four weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

Some Highlights

\n\n\n\n

Since Beta 1, 38 bugs have been fixed. Here is a summary of some of the included changes:

\n\n\n\n
  • Italicized text has been removed to improve accessibility and readability (#47326)
  • Pause any playing media when closing the the media modal (#48562)
  • Add Content-Security-Policy script loaders (#39941)
  • Several fixes for the Twenty Twenty-One theme (#50454#52432#52433#52473#52477, #52374)
  • Gutenberg editor support for custom spacing (#51760)
  • Resolved Menu UI issues on medium-large screen sizes (#49576)
  • Admin UI color palette: ensure that all interactive elements have an appropriate contrast ratio (#52402)
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 157 tickets in WordPress 5.7, including 68 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @audrasjb, @hellofromtonya, @francina and @desrosj for your peer revisions!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9688\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 5.6.1 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/wordpress-5-6-1-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 21:30:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9574\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:468:\"WordPress 5.6.1 is now available! This maintenance release features 20 bug fixes as well as 7 issues fixed for the block editor. These bugs affect WordPress version 5.6, so you’ll want to upgrade. You can download WordPress 5.6.1 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process. WordPress […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Jb Audras\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8347:\"\n

WordPress 5.6.1 is now available!

\n\n\n\n

This maintenance release features 20 bug fixes as well as 7 issues fixed for the block editor. These bugs affect WordPress version 5.6, so you’ll want to upgrade.

\n\n\n\n

You can download WordPress 5.6.1 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process.

\n\n\n\n

WordPress 5.6.1 is a short-cycle maintenance release. The next major release will be version 5.7.

\n\n\n\n

To see a full list of changes, you can browse the list on Trac, read the 5.6.1 RC1 post, or visit the 5.6.1 documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.6.1 release was led by @audrasjb, @desrosj, @sergeybiryukov and @whyisjake. Thanks to @metalandcoffee and @hellofromtonya for running bug scrubs, @planningwrite and @davidbaumwald for their help on the release post.

\n\n\n\n

Props to everyone who helped make WordPress 5.6.1 happen:

\n\n\n\n

aaribaud, Aaron D. Campbell, Ahmed Saeed, Andrew Ozz, Anthony Burchell, archon810, Ari Stathopoulos, Ayesh Karunaratne, basscan, carloscastilloadhoc, Carolina Nymark, celendesign, Christopher Finke, Copons, Dan Farrow, Daniel Richards, david.binda, Denis Yanchevskiy, Dilip Bheda, Dominik Schilling, Ebonie Butler, Felix Arntz, Florian TIAR, Garrett Hyder, gKibria, Greg Ziółkowski, Helen Hou-Sandi, Ian Dunn, ifnoob, Isabel Brison, Ismail El Korchi, Jake Spurlock, James Huff, Jason LeMahieu (MadtownLems), Jb Audras, John Blackbourn, Jonathan Desrosiers, Jonathan Stegall, Jorge Costa, Josepha, Justin Ahinon, Kai Hao, Kelly Choyce-Dwan, Kjell Reigstad, Konstantinos Xenos, litemotiv, lucasbustamante, Mahdi Akrami, majhajob, Manzur Ahammed, Marius L. J., Matt Wiebe, Maxime Pertici, Mel Choyce-Dwan, Michael Babker, Mukesh Panchal, NicolasKulka, Nik Tsekouras, oakesjosh, Peter Wilson, Prem Tiwari, Riad Benguella, Richard Tape, Robert Anderson, Rodrigo Primo, SeBsZ, Sergey Biryukov, Slava Abakumov, Stephen Bernhardt, t-p, Takashi Kitajima, Tanvirul Haque, thorlentz, Timothy Jacobs, Toni Viemerö, Tony A, Tonya Mork, transl8or, and Vlad T.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9574\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:36:\"The Month in WordPress: January 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/the-month-in-wordpress-january-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 15:01:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Month in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9632\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:382:\"For WordPress, 2021 started on a high note. Read on to learn about updates from last month.  WordPress release updates WordPress project executive director — Josepha Haden (@chanthaboune) shared big picture goals for WordPress in 2021. Highlights include shipping  Full Site Editing  — first on the Gutenberg plugin in April 2021  and later in core […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:11651:\"\n

For WordPress, 2021 started on a high note. Read on to learn about updates from last month. 

\n\n\n\n
\n\n\n\n

WordPress release updates

\n\n\n\n

WordPress project executive director — Josepha Haden (@chanthaboune) shared big picture goals for WordPress in 2021. Highlights include shipping  Full Site Editing  — first on the Gutenberg plugin in April 2021  and later in core (with WordPress 5.8), improved learning opportunities on learn.wordpress.org, and better tooling for contributors. As per the updated WordPress roadmap, WordPress version 5.7 is planned to launch in March 2021 and WordPress 5.8 in June 2021. Some related updates:

\n\n\n\n\n\n\n\n

Want to be involved in the next release? You can help build WordPress Core by following the Core team blog and joining the #core channel in the Making WordPress Slack group.

\n\n\n\n

Proposal to return to in-person WordPress events in safe locations

\n\n\n\n

The Community team is discussing an updated proposal to create a decision-making checklist for meetup organizers. The proposal is aimed at locations that have more effectively contained COVID-19 (such as New Zealand and Taiwan, for instance) so that local meetup groups in these areas can organize safe, in-person events. According to the proposal, in-person meetup organizers should review local/global health instructions based on resources and complete a checklist — which recommends whether to organize an event or not based on the organizer’s inputs and other factors. Compulsory safety precautions should be taken for any in-person meetup, and participants/organizers can share event feedback with WordCamp Central. The proposal is still being discussed, so if you have any thoughts, please share them in the comments. Please note: WordPress meetups and WordCamps are still online at this time and will continue to remain online until further notice.

\n\n\n\n

Want to get involved with the Community team? Follow the Community blog, or join them in the #community-events channel in the Making WordPress Slack group. To organize a local WordPress community event, visit the handbook page

\n\n\n\n

Gutenberg 9.7 and 9.8

\n\n\n\n

Contributor teams released Gutenberg Version 9.7 on January 6th and Version 9.8 on January 20th. Version 9.7 allows users to drag block patterns from the inserter right into a desired position within the editor. It also has a new block variations feature and several improvements to reusable blocks. Version 9.6 makes the spacer block semi-transparent, adds a variation icon to the block switcher, adds site editor content to an iframe, and stabilizes Full Site Editing (FSE) by removing the auto drafts feature.

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Making WordPress Slack group. You can find out more about the Gutenberg roadmap in the latest What’s next in Gutenberg blog post.

\n\n\n\n

Inviting Learn WordPress Contributors

\n\n\n\n

Contributor teams working on the Learn WordPress initiative are asking for new workshop presenters and discussion group facilitators. The Training Team is recruiting volunteers for the Learn WordPress handbook and has put up a call for testing for the slides plugin to identify a simplified way to present slides. The Polyglots Team has floated a proposal to translate Learn WordPress. The Meta Team is exploring the possibility of making Learn WordPress (and wordpress.org) COPPA-compliant to host workshops aimed at kids.

\n\n\n\n

Want to contribute to the Training team? Follow the Training team blog, or join them in the #training channel in the Make WordPress Slack. 

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9632\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 5.7 Beta 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 02 Feb 2021 22:31:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9599\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:333:\"WordPress 5.7 Beta 1 is now available for testing! 🗣 This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with the new version. You can test the WordPress 5.7 Beta 1 in two ways: Install/activate the WordPress Beta Tester […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:7908:\"\n

WordPress 5.7 Beta 1 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with the new version.

\n\n\n\n

You can test the WordPress 5.7 Beta 1 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just five weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

So what’s new? \"🤔\"

\n\n\n\n

Improvements in Core

\n\n\n\n

Lazy-load iframes
Now you can enable lazy-loading of iframes by adding the loading=\"lazy\" attribute to iframe tags on the front-end. 

\n\n\n\n

Migrating from HTTP to HTTPS is streamlined
Switching a WordPress site from HTTP to HTTPS has proven to be a pain for all involved. While on the surface, the Site Address and WordPress Address have to be updated, content with embedded HTTP URLs remains unchanged in the database. With this release, migrating a site to HTTPS is now a one-click interaction. URLs in the database are automatically replaced when the Site and WordPress Address are both using HTTPS.  Also, Site Health now includes an HTTPS status check.

\n\n\n\n

Standardize colors used in WP-Admin CSS to a single palette
This change collapses all colors used in the CSS to one of the available shades of blue, green, red, yellow, grey, black, and white. The palette makes it simpler than ever to build components your users can read, because half the range gives you great contrast with white type and a half with black, according to current accessibility guidelines.

\n\n\n\n

Ongoing cleanup after update to jQuery 3.5.1
jQuery deprecations in WordPress Core and bundled themes show up a lot less often, and the notifications make more sense to the user.

\n\n\n\n

New Robots API
The new Robots API allows the filter directives to be included in the ‘robots’ meta tag. Also, the directive max-image-preview:large is now included by default to allow large image previews to be displayed in search engines (unless the blog is marked as not being public).

\n\n\n\n

Improvements in the Editor

\n\n\n\n
  • Inserter drag and drop: Blocks and block patterns can now be dragged directly from the inserter into the post canvas.
  • Full height alignment: Blocks such as the Cover block now can have an option to expand to fill the entire viewport.
  • Block variations: The icon and description of a block variation is now shown in the block inspector, and a new dropdown in the block inspector lets you switch between block variations.
  • Reusable blocks: Several enhancements to the usability and stability of reusable blocks have been made, and reusable blocks are now saved at the same time that the post is saved.
  • Buttons block: The Buttons block now supports vertical alignments, and you can set the width of a button to a preset percentage.
  • Social Icons block: You can now change the size of the icons in the Social Icons block.
  • Font size in more places: You can now change the font size in the List and Code blocks.
  • Many many other enhancements and bug fixes. To see all of the features for each release in detail check out the Gutenberg release posts: 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, and 9.9.
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 143 tickets in WordPress 5.7, including 68 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @hellofromtonya, @sarahricker, @webcommsat, @marybaum, @jeffpaul, and @audrasjb for your peer revisions and @desrosj, @davidbaumwald, @cbringmann, and @chanthaboune for final review on this exciting news.

\n\n\n\n

____________________________________

\n\n\n\n

New Year, new goals
Each day, one small step
It’s the little things…

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9599\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:69:\"\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"People of WordPress: Thelma Mutete\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/01/people-of-wordpress-thelma-mutete/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 21 Jan 2021 16:40:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:10:\"Interviews\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:16:\"ContributorStory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:13:\"Web developer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9518\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:171:\"From writing her first line of code when she was 16, Thelma Mutete knew she wanted to work in IT. She shares her journey in web development and her discovery of WordPress.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8707:\"\n

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of those lesser-known, amazing stories.

\n\n\n\n
\"Thelma
\n\n\n\n

From a young age Thelma was encouraged by her father to ‘work hard, and dream big’. In High School, she pursued a career in Computer Science. She said: “I did not know what I would be doing or how I would get there but I just knew that I was going to pursue a career in information technology.”

\n\n\n\n

She wrote her first line of code at the age of 16 living in Zimbabwe, Africa. This was to mark the beginning of her enthusiasm for computer programming.

\n\n\n\n

When she joined the school’s computer class, Thelma thought she would learn Excel and Word. Instead, the assignment was to write her first program in C. She said: “It was not easy, but it was very exciting. l remember writing up simple code for a Video Club – a check-in/out for VHS tapes and CDs. Thus began my fascination with computers.”

\n\n\n\n

Seven years later, she went on to university to study for a Bachelors in Business Management and Information Technology. Her third year internship was at a local web design and hosting company. Though she had hoped her placement would be at a local bank or telecommunications company, the chance to discover website design turned out to be the best thing that could have happened. 

\n\n\n\n

In 2017, Thelma went on to work for a company designing websites using HTML, CSS, PHP, JavaScript and Joomla. She had heard about WordPress but had not used it. She recalls: “People have this misconception that WordPress is not for real developers and it is not secure and at that time I was one of those people.”

\n\n\n\n

Finding a local community

\n\n\n\n

From a discussion with a member of the local WordPress community, Thabo Tswana, about a striking swag gift from a WordCamp, Thelma’s interest was sparked. 

\n\n\n\n

She started to find out more about WordPress and WooCommerce, and visited her local WordCamp Harare website. She was delighted to find that she could learn more about WordPress without needing any pre-existing knowledge, and wanted to be involved. So instead of just attending the camp, she volunteered too! 

\n\n\n\n

Her response to her first WordPress event mirrors the experience of many others in the community. She said: “I only started using WordPress because of the awesome people that l had met at that WordCamp. Everyone was so welcoming.”

\n\n\n\n

A week later, with help from Thabo, she designed her first website using WordPress.

\n\n\n\n

She soon became more involved with the community and Meetups. Thelma participated in the first-ever ‘Women Who WordPress’ Meetup in 2018, with lots of women getting involved from bloggers to developers. 

\n\n\n\n

She said: “We were free to talk and discuss a lot of things. We had more time to discuss the difference between WordPress.com and WordPress.org, we shared views on how to handle discrimination at work, how to promote your website and a whole lot of other things.”

\n\n\n\n

Establishing roots in WordPress

\n\n\n\n

In 2018, WordCamp Harare had its first-ever female Lead Organizer Tapiwanashe Manhobo. Thelma was part of the organising team that year and was assigned to handle Harare’s first Kids Camp to take place eight months later. You can read more about her experiences of organizing a Kids Camp on her blog.

\n\n\n\n

She said: “After the first Kids Camp, we had several people in the local Zimbabwean WordPress community who were enthusiastic about encouraging young people to embrace ICT. In 2019, we had not planned to have a Kids Camp because of financial constraints but to our surprise, we had some anonymous donations and we managed to have a WordPress Community outreach to a youth centre, Centre for Total Transformation, a week after our WordCamp. It is a non-formal school that caters for underprivileged and vulnerable children. The group were able to share practical skills about using WordPress, computer hardware and software.

\n\n\n\n

Thelma shares that she became hooked on WordPress because of its community. “I enjoy attending WordCamps, meeting new people and just learning new stuff. I have a huge list of WordCamps I would like to attend. Last year I managed to cross WordCamp Johannesburg off my list. When everything is back to normal my plan to travel to WordCamps will proceed (fingers crossed).”

\n\n\n\n

Reaping the fruits of ongoing learning

\n\n\n\n

Thelma is committed to ongoing development training. She said: “Even though I can still cook up code in C and Java, for now, I have also included WordPress PHP functions to the mix. It was not easy to get to this point, daring myself got me to this slightly better stage. I try to do my best where I can and I am happy to say it has paid off so far.”

\n\n\n\n

Thelma has continued her journey working in design and digital marketing last year with Trust Nhokovenzo who works in digital marketing and is active in  the WordPress Community. He came across her name as a developer from talking with others involved in WordPress. She went to work with his team at a marketing agency.

\n\n\n\n

Her interest in the development of WordPress continued and she joined the 5.6 Release Squad in the mid 2020. At the end of 2020, she moved to become a Happiness Engineer working with WordPress.com. Thelma’s fascination with the platform and the community continues to grow and her contributor story is ongoing.

\n\n\n\n

Find out more about the Harare WordPress community in Zimbabwe.

\n\n\n\n

Contributors

\n\n\n\n

Thanks to Nalini Thakor (@nalininonstopnewsuk) and Surendra Thakor (@sthakor), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Larissa Murillo (@lmurillom), Meher Bala (@meher), Josepha Haden (@chanthaboune), and Chloé Bringmann (@cbringmann). Thank you to Thelma Mutete (@thelmachido) for sharing her #ContributorStory.

\n\n\n\n
\"HeroPress
\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. HeroPress highlights people in the WordPress community.

\n\n\n\n

#ContributorStory #HeroPress

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9518\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Tue, 23 Feb 2021 22:33:15 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:25:\"strict-transport-security\";s:11:\"max-age=360\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Tue, 23 Feb 2021 21:15:52 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 2\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(665, '_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1614162795', 'no'), +(666, '_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1614119595', 'no'), +(667, '_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1614162796', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(668, '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"WordPress Planet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"WordPress Planet - http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:50:{i:0;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"WordPress.org blog: WordPress 5.7 Release Candidate\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9773\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/02/wordpress-5-7-release-candidate/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3678:\"

The first release candidate for WordPress 5.7 is now available! \"🎉\"

\n\n\n\n

Please join us in celebrating this very important milestone in the community’s progress towards the final release!

\n\n\n\n

“Release Candidate” means that the new version is ready for release, but with millions of users and thousands of plugins and themes, it’s possible something was missed. WordPress 5.7 is slated for release on March 9, 2021, but your help is needed to get there—if you haven’t tried 5.7 yet, now is the time!

\n\n\n\n

You can test the WordPress 5.7 release candidate in two ways:

\n\n\n\n\n\n\n\n

Thank you to all of the contributors who tested the Beta releases and gave feedback. Testing for bugs is a critical part of polishing every release and a great way to contribute to WordPress.

\n\n\n\n

What’s in WordPress 5.7?

\n\n\n\n
  • Robots API and Media Search Engine Visibility
  • Detect HTTPS support
  • Lazy-load iframes
  • jQuery migrate-related Deprecation notice clean-up
  • Admin color palette standardization
  • The newest version of the Gutenberg plugin
\n\n\n\n

Plugin and Theme Developers

\n\n\n\n

Please test your plugins and themes against WordPress 5.7 and update the Tested up to version in the readme file to 5.7. If you find compatibility problems, please be sure to post to the support forums, so those can be figured out before the final release.

\n\n\n\n

The WordPress 5.7 Field Guide will give you a more detailed dive into the major changes.

\n\n\n\n

How to Help

\n\n\n\n

Do you speak a language other than English? Help us translate WordPress into more than 100 languages! This release also marks the hard string freeze point of the 5.7 release schedule.

\n\n\n\n

If you think you’ve found a bug, you can post to the Alpha/Beta area in the support forums. We’d love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac, where you can also find a list of known bugs.

\n\n\n\n

Props to @audrasjb for copy suggestions and @davidbaumwald for final review.

\n\n\n\n
\n\n\n\n

Test this test that
Catch everything that you can
Before it’s live…
\"🤯\"

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 21:07:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:90:\"WPTavern: FSE Outreach Round #2: Building a Custom Homepage With Gutenberg’s Site Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112446\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/fse-outreach-round-2-building-a-custom-homepage-with-gutenbergs-site-editor?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-round-2-building-a-custom-homepage-with-gutenbergs-site-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7373:\"

Anne McCarthy announced the second round of testing for the Full Site Editing (FSE) Outreach program. The call for testing asks that users build a homepage from the Gutenberg plugin’s site editor. Feedback is open until March 5.

\n\n\n\n

The first round of testing began in December 2020 and ended last month. Testers were able to identify several pain points with template-editing mode from the block editor. The program created actionable items that Gutenberg developers could work to improve.

\n\n\n\n

This second round is similar. However, testing covers a much larger and more complex area. Users will be leaving the familiar block editor and moving to the site editor, which is still months away from being a viable product.

\n\n\n\n

McCarthy listed a 22-step process for building out a homepage. While I followed it, for the most part, I got bored before finishing. This is one of the reasons I make for a poor test subject. I like to explore and see what is possible on my own. If I have an idea, I want to attempt its execution. I primarily stuck to the overall script, even if it was a bit out of order.

\n\n\n\n

Eventually, I created a custom homepage for a restaurant called The Grilled Cheese — I would definitely open this restaurant in the real world if I ever leave the WordPress community.

\n\n\n\nCustom restaurant homepage with sidebar.\n\n\n\n

It is reasonably simple. All told, it took me around two hours of playing around with various concepts before arriving at this stage. To build something I would be happy with would have taken a few more hours.

\n\n\n\n

Overall, I felt limited in laying out my ideal homepage. Each step was an uphill battle against the tools. I could have built this in less than half the time with HTML and CSS. I could do the same and more with other modern page builder plugins for WordPress.

\n\n\n\n

Before diving into the results of my test, I have some brutal honesty. TT1 Blocks, which is the theme used for FSE Outreach testing, is not up to snuff. The theme does not reliably handle the multitude of possibilities the site editor sets in the hands of end-users. This entire experience could be made smoother with a better theme. However, the choices are limited, and I am not sure if there is a better block-based theme to work with at this point.

\n\n\n\n

There were so many inconsistencies between the site editor and the front end that there is little point in listing them all. Spacing was grossly off. I generally see that as a theme issue. I spent much of my time in trial-and-error mode, making an adjustment in the editor and refreshing to see the front-end result. Rinse. Repeat.

\n\n\n\n

Identifying Pain Points

\n\n\n\n

While this post is critical of the site editor, it does not mean the experience was altogether poor. Seeing the improvement every week gives me hope that WordPress will have a site editor that rivals anything on the market. Eventually. However, my goal here is to provide real feedback that the team can use.

\n\n\n\n

Outside of the general spacing issues mentioned earlier, I identified several stumbling blocks while building a custom homepage.

\n\n\n\n

Maximum Widths

\n\n\n\n

When designing a full-site page via the site editor, one problem stood out more than most. WordPress lacks a well-rounded “max-width” system. As a user, I was left with few choices in setting the width of the content area of my homepage. Currently, theme authors can set custom content, wide, and full widths. However, this system is horribly limiting. There is not much theme authors can do with this, and this problem directly limits what users can do in both the block and site editors.

\n\n\n\n

I have previously written about the need for a design framework, one that is customizable by theme authors. Tailwind CSS has a max-width system that offers a boatload of flexibility. WordPress needs to start borrowing ideas from these modern design frameworks.

\n\n\n\n

Add Block Icon

\n\n\n\n

Getting the “Add Block” icon to appear when hovering in between elements in the default content area was rough. I had to position my mouse in a perfect position for it to appear. It was an exercise in frustration where even the slightest movement caused the icon to once again disappear.

\n\n\n\nLocating the ‘Add Block’ icon.\n\n\n\n

Switching to Top Toolbar mode made this far easier. I am assuming the default block toolbar was hiding it to some degree. The problem with switching to this mode is that my toolbar-choice was not saved. Each time I returned to the site editor, I had to enable it once again.

\n\n\n\n

Query Block

\n\n\n\n

The most frustrating aspect of listing posts on a custom homepage was setting a limit. I wanted to set the number to three. However, the Query block has no option for doing this. Eventually, I created a faux limit using the category filter, choosing one that had just a couple of posts.

\n\n\n\nLimiting posts by using the Query block’s category filter.\n\n\n\n

Another confusing aspect of the Query block is the keyword filter. As far as I am aware, WordPress has never used the “keyword” terminology. Outside of SEO plugins, there does not seem to be any context for what this filter does. I am guessing it works like a search keyword.

\n\n\n\n

Global Styles for All Blocks

\n\n\n\n

When switching over to the Global Styles panel, I noticed that some blocks were missing when applying styles on the block level. In particular, I wanted to adjust styles for the Latest Comments block.

\n\n\n\n

I suppose that only blocks with typography, colors, and other design-related options appear in the list. This will likely confuse end-users when the site editor lands in WordPress. All blocks should have style options that users can customize.

\n\n\n\n

No Full-Width Columns

\n\n\n\n

For the content of my homepage, I attempted to create a full-width Columns block. However, the two individual columns were limited in size despite taking up 66.67% and 33.33%, respectively.

\n\n\n\nFull-width columns not spanning the full area.\n\n\n\n

This seems like it is a theme issue. I would also argue that this is one of those times where having more direct control over the max-width would have helped. I really wanted something that was between the theme’s full and wide widths.

\n\n\n\n

Featured Images

\n\n\n\n

There is no way to set the size of the image output by the Post Featured Image block. The only way to get a uniform size at the moment is to pre-crop the images before uploading them to WordPress.

\n\n\n\n

There is no reason this should not essentially be a variation of the Image block. The only thing featured images need that is different is the option to link to the post.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 20:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WordPress Foundation: The Basic principles of Open-source Software\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=181046\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"https://wordpressfoundation.org/2021/the-basic-principles-of-open-source-software/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5067:\"

The WordPress Foundation aims to educate the public about WordPress and related open-source software (OSS). Towards that end, the WordPress Foundation created the Introduction to Open-source workshops, which shed more light on the potential of open-source software, particularly in countries where there is less participation in OSS projects. Due to the COVID-19 pandemic, these workshops have moved online. The WordPress Foundation hopes to see more open-source workshops held online this year to help spread awareness about the importance of open-source software.

\n\n\n\n

What are open-source software and Free Software?

\n\n\n\n

Open-source software is software whose source code is available for anyone to view, modify and enhance. Free software refers to software that complies with “four essential freedoms” – to use, study, modify and distribute software for any purpose without legal restraint. Open-source software is characterized by the public accessibility of its code, while free software focuses on the capabilities for using and sharing the software.

\n\n\n\n

Advantages of Free and Open-source Software over Proprietary software

\n\n\n\n

Proprietary software is distributed in executable files where the source code is encrypted and not available. Free and Open-source software enables users to read and modify the code, thus allowing a host of advantages such as little (or no) cost, faster distribution, greater customization, and easy availability of bugs and security patches, to name a few. 

\n\n\n\n

The Introduction to Open-source workshops cover the difference between different software types, the history of open-source software, its advantages over proprietary software, and how this applies to WordPress. The workshop also explains the differences between free and Open-source software and highlights the different types of software licenses. 

\n\n\n\n

Want to learn more about Free and Open-source software? Participate in an Introduction to Open-source workshop!

\n\n\n\n

There are four ways you can participate in an Introduction to Open-source workshop! 

\n\n\n\n
  1. You can attend the Introduction to WordPress workshop from the comfort of your home! Learn WordPress now features an Introduction to Open-source video workshop that you can watch at your convenience. 
  2. Community members can also now host or participate in Introduction to Open-source workshop discussion groups in the Learn WordPress meetup group for a global audience. Sign-ups are now open for the following two discussion groups:
\n\n\n\n\n\n\n\n

If you would like to host an Introduction to Open-source discussion group for a global audience, please apply to become a discussion group facilitator. 

\n\n\n\n
  1. WordPress Meetup groups worldwide are also encouraged to organize an Introduction to WordPress watch party + discussion group (based on the Learn WordPress workshop on Introduction to Open-source) as part of their meetup (it does not need any prior approval). 
  2. Lesson plans for the Introduction to Open-source workshops are available! Meetup group organizers can plan their live open-source workshop based on the lesson plans. 
\n\n\n\n

The WordPress Foundation invites community members across the world to join these open-source workshops and to organize workshops and discussion groups in their communities to help spread our mission of serving the public good with the help of Open-source software.

\n\n\n\n

Meetup groups organizing Introduction to Open-source workshops will be featured on this website. All you need to do is to reach out to us with a brief write-up about your workshop along with pictures, and we’ll publish them here!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 12:58:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:46:\"Matt: Invest Like the Best and Building Worlds\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=53759\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"https://ma.tt/2021/02/invest-like-the-best-and-building-worlds/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1736:\"\n\n\n\n

On a Founder’s Field Guide episode with Patrick O’Shaughnessy we had an interesting conversation that covered a lot new ground, including an idea I’ve been playing around with on, as Patrick put it:

\n\n\n\n

The idea from @photomatt that the best companies are those that build intricate worlds (in the same way that J. R. R. Tolkien came up with the elvish language) will always stick with me.

\n\n\n\n

We also covered the pendulum of centralization and decentralization, current challenges facing the internet, and being a connoisseur of things overlooked. You can check out the episode on Apple, Google, Spotify, Overcast, and Pocket Casts.

\n\n\n\n

I’ve been impressed by the audience of this podcast, a lot of people I admire reached out after this episode.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 23 Feb 2021 05:10:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"WPTavern: Native Lazy Loading Support for iframes Coming To WordPress 5.7\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112383\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/native-lazy-loading-support-for-iframes-coming-to-wordpress-5-7?utm_source=rss&utm_medium=rss&utm_campaign=native-lazy-loading-support-for-iframes-coming-to-wordpress-5-7\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5031:\"

Felix Arntz, a WordPress core committer and developer programs engineer at Google, announced upcoming support for lazy loading iframes. The feature is included in the latest WordPress 5.7 beta and will officially ship next month to the larger community.

\n\n\n\n

WordPress has supported lazy loading for images since version 5.5. However, support for iframes was not included in the initial feature set. Browser support for iframes was widespread at the time. However, it had not yet been formalized as part of the HTML Living Standard. Soon thereafter, it was added to the HTML spec, and discussion began anew for adding support into WordPress.

\n\n\n\n

Unlike images, many users are likely unaware that they are using iframes. The primary use case for iframes is with embed blocks or the auto-embed system for users who are on the classic editor. For example, whenever a user adds a YouTube video to their blog post, the underlying code outputs an iframe.

\n\n\n\nSource code of YouTube embed shows iframe.\n\n\n\n

These iframes add weight to the page size and hamper loading time.

\n\n\n\n

The opposite of lazy loading is eager loading. This is the default on the web, which loads all resources in bulk. This also often leads to slow-loading webpages when they contain many images or iframes. Lazy loading only loads the image and iframe sources when they appear in a site visitor’s viewport. This speeds up the initial load time of pages.

\n\n\n\n

WordPress will only add the loading=\"lazy\" attribute if an explicit width and height are set for the iframe. This is to avoid the page-shifting effect that happens when the iframe comes into view. Arntz wrote about this effect extensively when he announced support for image lazy loading. The same issue applies to iframes.

\n\n\n\n

“A common user experience problem in modern websites is so-called layout shifting, often caused by slow-loading media resources like images,” he wrote. “By default, only after an image is loaded, the browser can layout the page correctly, which results in the content e.g. below the image to shift. This issue can be easily resolved by providing width and height attributes on img tags, as the browser will use them to determine the aspect ratio of the image so that it can infer the page layout ahead of actually loading the image.”

\n\n\n\n

There are cases where WordPress will not add the loading attribute, even for oEmbed providers that it supports. The iframe content is not supplied by WordPress. The third-party providers create the HTML and send it back to the individual WordPress site. It is up to those third parties to follow best practices for adding width and height attributes.

\n\n\n\n

“Since WordPress cannot guess the dimensions of the embedded resource, the loading=\"lazy\" attribute will only be added if the oEmbed iframe tag comes with both dimension attributes present,” wrote Arntz.

\n\n\n\n

Currently, the filter applies to the post content, excerpt, and text widgets. Perhaps WordPress will extend this to comment text one day.

\n\n\n\n

Potential Problems With Ads

\n\n\n\n

MaAnna Stephenson, the owner of BlogAid, brought up a concern for users who display ads on their site. There may be scenarios where lazy loading is banned in advertising terms or has a technical conflict.

\n\n\n\n

“Has this been tested with folks who run ads on their site using an ad agency like Mediavine and AdThrive?” she asked. “They cannot have iframes lazy loaded, as the ads use iframes and they have their own lazy load mechanism for delivery.”

\n\n\n\n

The problem is that there is no ideal way to exclude every advertising service and to distinguish them from other types of iframes. From a technical standpoint, it needs to be an all-or-nothing feature.

\n\n\n\n

Handling ads falls squarely into plugin territory. Arntz covered such use cases in the post. Developers can disable lazy loading for iframes wholesale or target specific iframes with basic PHP. It would only take a few lines of code to build a plugin for specific ad services.

\n\n\n\n

Jeff Starr also has a plugin for disabling lazy loading altogether named Disable Lazy Load. That could serve as a stopgap solution until something more specific to users’ needs comes along.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 22 Feb 2021 22:44:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: WordPress 5.6.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9764\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/wordpress-5-6-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5042:\"

WordPress 5.6.2 is now available!

\n\n\n\n

This maintenance release includes 5 bug fixes. These bugs affect WordPress version 5.6.1, so you’ll want to upgrade.

\n\n\n\n

You can download WordPress 5.6.2 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process.

\n\n\n\n

WordPress 5.6.2 is a small maintenance release focused on fixing user-facing issues discovered in 5.6.1. The next major release will be version 5.7, currently scheduled for release on March 9, 2021.

\n\n\n\n

To see a full list of changes, you can browse the list on Trac, read the 5.6.2 RC1 post, or visit the 5.6.2 documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.6.2 release was led by @desrosj. Special props to @isabel_brison and @talldanwp for helping to prepare the block editor related fixes, and @audrasjb and @sergeybiryukov for helping with other release related tasks.

\n\n\n\n

Props to everyone who helped make WordPress 5.6.2 happen:

\n\n\n\n

aaronrobertshaw, Addie, André Maneiro, archon810, Ari Stathopoulos, bartosz777, Bernhard Reiter, Daniel Richards, David Anderson, dbtedg, glendaviesnz, hmabpera, ibiza69, Isabel Brison, Jason Ryan, Jb Audras, Juliette Reinders Folmer, Kai Hao, Kerry Liu, Konrad Chmielewski, Jorge Costa, magnuswebdesign, Marius L. J., Matt Wiebe, Mukesh Panchal, Paal Joachim Romdahl, Prem Tiwari, Q, Riad Benguella, Robert Anderson, roger995, Sergey Biryukov, Sergey Yakimov, Steven Stern (sterndata), Takashi Kitajima, tonysandwich, worldedu, Yui.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 22 Feb 2021 15:35:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"WordPress.org blog: Reflecting on Gutenberg’s 100th Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9750\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://wordpress.org/news/2021/02/reflecting-on-gutenbergs-100th-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3693:\"
\"\"\"\"
1.0 to 10.0\n\n\n\n

Gutenberg 10.0 released this week, February 17, 2021, marking the 100th release of the Gutenberg plugin; the 100th release of a journey that started more than four years ago when Matt announced the project at WordCamp US 2016. 

\n\n\n\n

Where We Started

\n\n\n\n

The past four years have not always been an easy journey. Shipping something this impactful is not easy, and there was precedent for keeping the editor as it was: WordPress had already tried to replace TinyMCE a couple of times already. What would be different this time around? The worry was “not much” and initially, very few people actively joined the project.

\n\n\n\n

Six months later came WordCamp Europe 2017 and the first release of the plugin. The editor was nowhere close to being usable, but it “clicked” for some. The reactions to the presentation were hopeful, but afterward, there was a lot of pushback.

\n\n\n\n

Gutenberg was (and is) an audacious project. With a project this big it attracted a lot of attention, and it became difficult to discern constructive debate from mere opposition. We each come with our context, and some people had a fixed idea about what they wanted for the project. Some wanted to reuse an existing page builder, others wanted to revive the Fields API project, some wanted it to be front-end-first, others wanted it just to replace the classic editor’s content area, some wanted it to be in Vue.JS, others wanted no change at all. With a product used by 40% of the web, you hope to find consensus, and when compromises have to be made, it can be difficult for those involved to avoid feeling that their voice is being ignored.

\n\n\n\n

We have also made quite a few mistakes: stability wasn’t great in some releases, performance suffered in others, and accessibility as well. But we kept pushing forward, using feedback to improve the editor and the project in all aspects until its first inclusion in WordPress 5.0, and we’re still working to improve it today.

\n\n\n\n

Where We Are

\n\n\n\n

It’s a delight to see some people who strongly disagreed with the initial vision or approach to Gutenberg gradually come to enjoy using the editor and join the project to carry on its vision. Others might still not like it; some won’t ever use it. One thing is certain; we’ll continue doing our best to push forward, improve what’s already shipped, and ship new exciting features. We’ll continue making mistakes and hopefully continue learning from them.

\n\n\n\n

Wednesday marked the 100th release of Gutenberg, and while that looks remarkable on the outside, the release itself holds what all the other releases did. It holds improvements to the existing features, it fixes bugs that users reported, adds new features, and it highlights experiments with new ideas.

\n\n\n\n

What is remarkable about the release is the people. The ones who were with us from the start, the ones who were with us but left, the ones who joined in our journey, everyone who helped along the way, everyone who provided feedback, everyone who got their hands dirty, and everyone who tried to use this editor, extend it and provide ideas.

\n\n\n\n

Thank you all.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 19 Feb 2021 18:34:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Riad Benguella\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"WPTavern: Taking on the Major Players, Plausible Analytics Offers an Alternative, Privacy-Conscious Stats Service\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112168\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"https://wptavern.com/taking-on-the-major-players-plausible-analytics-offers-an-alternative-privacy-conscious-stats-service?utm_source=rss&utm_medium=rss&utm_campaign=taking-on-the-major-players-plausible-analytics-offers-an-alternative-privacy-conscious-stats-service\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8061:\"

Plausible Analytics is not new on the scene. The two-person, EU-based team behind the company has been trying to carve its slice of the analytics pie against players like Google Analytics and WordPress.com Stats for nearly two years.

\n\n\n\n

The self-funded and bootstrapped company is starting to gain a small foothold. It has been an uphill climb to get to usage on over 10,000 websites. Now, it is reaching out directly to the WordPress community with its Plausible Analytics plugin.

\n\n\n\n

Plausible Analytics is a simple, open-source, lightweight (< 1 KB), and privacy-friendly alternative to Google Analytics,” said co-founder Marko Saric. “We don’t use cookies or track any personal data, but we still aim to give you as a site owner interesting and useful insights so you can improve your efforts.”

\n\n\n\n

The company’s service is built on an open-source philosophy, possibly making it an ideal partner for WordPress. The source code for the analytics service is licensed under the AGPL version 3.0 and is publicly available on GitHub.

\n\n\n\n

Users have two options for running Plausible Analytics. The first route is to use the company’s cloud-based service, similar to other stats-based services. The other is to self-host the code.

\n\n\n\n

For the cloud service, there is a monthly, tier-based fee. Up to 10,000 pageviews runs $6 per month. Each level increases based on the number of views a site — you can also hook up multiple sites — receives. Users can knock 33% off the price by paying yearly, which puts the starting tier at $4 per month. Plausible also offers a 30-day free trial.

\n\n\n\n

“It’s definitely a challenge to go against free products and a product as dominant as Google Analytics, but it does feel like the times are changing,” said Saric. “An increasing number of people are becoming aware that free means that you may be paying with something else such as the data of your visitors in the case of Google Analytics.

\n\n\n\n

“With Plausible, you own your site data. We don’t share it with any third parties, and we don’t use it for any other purpose. As we don’t make money by selling your data, we need to charge a subscription fee to pay our costs and salaries so we can continue working on the product. We have tried to keep the prices as fair and affordable as possible starting at $4/month. We do have a free as in beer self-hosted version too for those who like to manage their own server infrastructure.”

\n\n\n\n

For the self-hosted version, which might appeal to the DIY crowd in the WordPress world, Plausible is designed to run via Docker. Saric said you should have a basic understanding of the command-line and networking. The server must have a CPU with x86_64 architecture and support for SSE 4.2 instructions.

\n\n\n\n

“Everything else really depends on how popular your site is and how much traffic you get,” said Saric. “But you should be able to run Plausible for a site that gets tens of thousands of monthly visitors even on the lowest Digital Ocean droplet.”

\n\n\n\n

As of the latest plugin release, self-hosted support is built directly into it too.

\n\n\n\n

How Plausible Analytics Works

\n\n\n\nRealtime stats from Plausible Analytics.\n\n\n\n

The service is much like any other analytics product. You sign up. The site gives you a JavaScript snippet, which you place in your site’s header. Of course, this is automatically taken care of via the plugin.

\n\n\n\n

The service feels much like a stepping stone between what you might get between WordPress.com Stats and Google Analytics. It is a middle ground that shows promise for a young product. However, the interface feels easier to navigate and make sense of than either service. Plausible has plenty of room for growth, which makes it promising to see what the team has accomplished at this stage.

\n\n\n\n

End-users can enjoy the typical stats they are accustomed to seeing and break them down by time frame. Referrer, page, country, and device data are all there. Users can also set up goals, get email reports, and hook up to the Google Search Console.

\n\n\n\n

The downside to the Plausible Analytics WordPress plugin is that it is a bit bare-bones at the moment. It is merely a settings screen and integration layer between the site and service.

\n\n\n\nPlugin settings screen.\n\n\n\n

It is missing the make-or-break feature of a built-in analytics page. Many users are accustomed to accessing their stats directly from within WordPress.

\n\n\n\n

“Yes, that’s the main thing we want to fix with the WordPress plugin,” said Saric. “We’ve introduced several features to make the plugin useful for WordPress sites, such as excluding admin users from being counted by default, the option to track 404 error pages, and clicks on external links. We also have an easy way to run our script as a first-party connection from your subdomain, so you get more accurate stats compared to Google Analytics which is blocked by many browsers and extensions.”

\n\n\n\n

The team is currently working on an API for Plausible and on an embedded mode. Before introducing stats into the WordPress UI, they must complete these features.

\n\n\n\n

Privacy-First Solution

\n\n\n\n

Website owners and visitors are becoming much more privacy-conscious than in years past. In light of the GDPR and related legislation from around the world, companies like Plausible Analytics must navigate this new landscape while still providing the data that users need.

\n\n\n\n

“Plausible was built as a response to GDPR, other privacy regulations, and cultural changes over the last few years,” said Saric. “Our mission is to reduce corporate surveillance by providing an alternative web analytics tool which doesn’t come from the ad-tech world.”

\n\n\n\n

Plausible Analytics does not track individuals, and its data is aggregate-only said Saric. The service also does not rely on cookies or local storage, and there is no cross-site or cross-device tracking.

\n\n\n\n

“We minimize any data collection in general, and whatever we do track is kept fully secured, encrypted, and hosted on a server in the European Union to ensure it is being covered by the strict laws on data privacy,” he said. “We’re very transparent in all the data we collect. We have an in-built feature that we recommend site owners use to open up their stats to the public and share it on their site to be fully transparent so their visitors and anyone else can view the data that they have access to.”

\n\n\n\n

The Future of Plausible Analytics

\n\n\n\n

The team recently introduced UTM tag support and custom events, allowing users to track whatever they want. Saric said that it is now possible to follow the full journey from an ad-click all the way to conversion on users’ sites.

\n\n\n\n

“The next step for the WordPress plugin is to add the default out-of-the-box integration with popular third-party plugins to support event tracking for things such as contact forms and eCommerce,” he said. “This will make it a more convenient experience for WordPress users so they can get started tracking custom events without any manual configuration being required.”

\n\n\n\n

All other features are done in the open on the project’s GitHub repository and its roadmap. The plugin is also open to community involvement on a separate repo. Saric credits community member and WordPress developer Mehul Gohil with help on the plugin.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 19 Feb 2021 17:03:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"WPTavern: WordPress.org Removes Fake Reviews for AccessiBe Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112241\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:173:\"https://wptavern.com/wordpress-org-removes-fake-reviews-for-acessibe-plugin?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-org-removes-fake-reviews-for-acessibe-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4672:\"

After noticing suspicious review activity for the AccessiBe plugin, accessibility consultant Joe Dolson reported the fake reviews to WordPress.org’s plugin team. The reviews were removed in under 48 hours, thanks to Dolson’s detailed research.

\n\n\n\n

At the time of reporting, Dolson found 31 five-star reviews, 2 four-star reviews, and 2 one-star reviews. After putting these into a spreadsheet, he found certain correlations among the first 11 five-star reviews:

\n\n\n\n
  1. All eleven user accounts I viewed had a common pattern of registration and use: between zero and 3 support topics raised and 4-7 reviews over the last 18 months.
  2. Every one of these eleven accounts had at least one point of overlap with another user in that group. That is, for each plug-in or theme interacted with by one of the accounts, at least one of the other accounts also interacted with that plug-in or theme.
  3. Multiple accounts had submitted one-star reviews on another plug-in, and in a quick assessment of other one-star reviews on that plug-in, I quickly found another account that had also submitted a five-star review on AccessiBe.
\n\n\n\n

Approximately 33 reviews were removed from the AccessiBe plugin’s page after the report. Plugin team member Mika Epstein said that the team “passes the reports to a volunteer who is amazing at hunting down VPNs and IPs for that.” She also recognized Dolson’s legwork and reporting as being instrumental in this particular case.

\n\n\n\n

Dolson allowed me to view his spreadsheet, where he logged URLs for each suspected fake review, along with dates and reviews left on other plugins. These were not saved to the Internet Archive, but Dolson said they were all “pretty generic,” and that each one was a one-sentence review. The user profiles still appear to be there but do not have any activity listed.

\n\n\n\n

“As a WordPress plugin author myself, I find the investment in falsifying positive reviews irritating,” Dolson said. “What some of us work for, they are simply buying – the appearance of a good product without the labor of winning customer opinion.

\n\n\n\n

“I found the evidence of a hatchet job conducted systematically against another plugin chilling, however.”

\n\n\n\n

The AccessiBe plugin is active on approximately 3,000 sites. Accessibility advocates have long held a certain amount of animosity towards the way its creators market the plugin as a quick fix solution, claiming it helps “mitigate the risk of lawsuits.” AccessiBe also has a well-documented history of paying for positive press. Dolson and others deeply involved in WordPress accessibility keep tabs on the plugin, which is how he came across the suspicious activity.

\n\n\n\n

Soliciting paid or fake reviews is not a new infraction, and it has been explicitly forbidden in the directory’s guidelines for years. This falls under guideline #9: Developers and their plugins must not do anything illegal, dishonest, or morally offensive, which includes “Creating accounts to generate fake reviews or support tickets (i.e. sockpuppeting).”

\n\n\n\n

Fake and paid reviews are a blight on any marketplace, and pop up now and then on the theme and plugin directories due to the power of WordPress.org as a distributions channel for freemium products. It makes it more difficult for the consumer to get an accurate understanding of the quality of the the product, but it’s not always easy to identify who commissioned the fake reviews.

\n\n\n\n

Any user can help ensure the plugin directory has fair and honest reviews by flagging those that look suspicious. In the sidebar of individual review posts, logged-in users can flag a post for consideration. WordPress.org doesn’t often announce when it takes action to remove reviews but should confirm having received the report. In a rare case like this, Dolson’s writeup gives the wider community a glimpse into what it takes to track down fake reviews and get them cleaned up.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 18 Feb 2021 23:10:54 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"WPTavern: GermanThemes Releases Block-Ready GT Basic WordPress Theme With Custom Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112276\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:223:\"https://wptavern.com/germanthemes-releases-block-ready-gt-basic-wordpress-theme-with-custom-patterns?utm_source=rss&utm_medium=rss&utm_campaign=germanthemes-releases-block-ready-gt-basic-wordpress-theme-with-custom-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5100:\"\n\n\n\n

Today, GT Basic became the second theme from GermanThemes to go live in the WordPress theme directory. Like the company’s previous theme, GT Ambition, it is built around the block editor. It also introduces several custom block patterns.

\n\n\n\n

The theme will not knock anyone’s socks off with its artistic merit. GT Basic is very much business in the front and business in the back, so it will not immediately appeal to everyone. However, it has everything you need and none of the things you don’t for setting up a WordPress website.

\n\n\n\n

Out of the box, it is an architecturally-sound business theme. Its layout, structure, and typography make for a well-rounded design applicable to nearly any site. With a few modifications via the customizer, users can personalize it.

\n\n\n\n

Its open-canvas feel gives ample room for using the entire content area for building custom page layouts, which is what business site owners should be looking for. The theme’s typography is on-point, creating a comfortable reading atmosphere for long-form content. It could serve well for a general blogging theme.

\n\n\n\n

The theme is ripe for the possibility of child themes. These types of well-designed themes from a purely structural standpoint leave plenty of room for customization. GT Basic has just the right amount of visual options for users to put their unique spins on it. However, there is a lot of room for design-savvy people to do more.

\n\n\n\n

About the Theme

\n\n\n\n

GT Basic is, well, a basic theme. It is kind of there in the name. However, it includes enough options to make it more visually palatable. A few color and font changes could spice things up — the theme offers a range of system and Google font-family choices.

\n\n\n\nModifying the theme’s typography and colors.\n\n\n\n

The theme also manages to not make a complete and utter mess of the customizer. GT Basic neatly tucks all of its options under a custom panel named Theme Options. Even its “theme links” section is in there. It is refreshing to see a theme not regurgitate pro links and single-use sections across the entire customizer controls frame. You will rarely see me use emoji, but the theme author deserves one on this point alone: 👏.

\n\n\n\n

Where the theme gets things right is its support of the block editor. It does not try to do too much, relying on the core block styles as a foundation. It then tacks on a mere 46kb of additional CSS, unminifed, which is almost unheard of in today’s theme market.

\n\n\n\nBlock design in the cafe demo for the theme.\n\n\n\n

GT Basic is one of the few themes I have seen that adds a custom block editor sidebar panel. Instead of going the page template route, it adds a full-width option, a method I have preferred over the years. It also has settings for users to disable the title and remove white space at the end of the content area.

\n\n\n\n

The biggest downside to the theme is that the blog/posts page and archives display the full post instead of excerpts. It is one of my pet-peeves with theme design. Users should at least have the option to switch to an excerpt view.

\n\n\n\n

The other cringe-worthy feature is the automatic output of the featured image alongside the full post content. This creates the dreaded double featured-image effect if the user also uses the same image within their post content. Again, a simple option to disable this would suffice.

\n\n\n\n

Block Patterns

\n\n\n\nInserting GT Basic’s portfolio block pattern.\n\n\n\n

I am a sucker for block patterns. Throw a few in any theme, and I will install it and see what I can build. The pattern system remains one of my favorite features of WordPress. It is also one of the areas where business themes can make their mark.

\n\n\n\n

GT Basic includes four patterns for users:

\n\n\n\n
  • Hero Section
  • Services
  • Call to Action
  • Portfolio
\n\n\n\n

It does not take much to create unique layouts by mixing and matching two or more of them.

\n\n\n\n

Thomas Weichselbaumer, the founder of GermanThemes, announced the adoption of block patterns in August 2020. He introduced block patterns across GermanThemes’ product line shortly after WordPress 5.5 introduced the feature.

\n\n\n\n

GT Basic’s patterns would be more appealing if they included imagery and a spectrum of colors. The pattern layouts are designed well, but they lack the visual umph that inspires users. This is a missed opportunity to showcase how useful the patterns are. However, the theme author has built a few demos that could serve as inspiration.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 18 Feb 2021 22:52:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Ask the Bartender: Frustrations and Finding the Right WordPress Block Plugins\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112071\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:217:\"https://wptavern.com/ask-the-bartender-frustrations-and-finding-the-right-wordpress-block-plugins?utm_source=rss&utm_medium=rss&utm_campaign=ask-the-bartender-frustrations-and-finding-the-right-wordpress-block-plugins\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9141:\"

Hello. I always supported the idea of a WordPress block editor as a whole, but lately, I’m a bit frustrated in that there are some blocks I need with urgency to work on a (non-visitor editable) wiki-like site (mostly a Tabs block, a Countdown block, an Accordion/Toggle block, a Table of contents block and a Footnotes block) and have not had luck finding appropriate plugins. I can name a long list of the specific problems I have with the ones available right now…

Andrés

\n\n\n\n

Andrés’ question spanned another 400 words or so. The following summarizes the problems he has run into:

\n\n\n\n
  • Block collection plugins cover some but not all use cases.
  • Seemingly suitable blocks have too few or too many options.
  • Few blocks can be converted to other block types.
  • Many block plugins have not been updated in a while, causing fear of abandonment.
  • No way to batch convert blocks if a better plugin is found.
  • Need a footnotes block.
\n\n\n\n

I do not necessarily see most of these as block-related problems. It can be tough to find that sweet spot, fine-tuning your WordPress site with just the right tools.

\n\n\n\n

When I first began using WordPress in 2005, I hit these same sorts of problems. And they were problems throughout my career as a developer. I would find a plugin that would do almost what I wanted. I would find another that would add way too many unnecessary features. Often, nothing seemed to exist that was perfect for my needs. This was the sole reason I jumped into development — if you want something done right, do it yourself. I wanted my WordPress site to work according to my own strict specifications. No one else would do it for me, and I was a starving college student who could not afford to hire a developer. It left me little choice other than putting in the time and effort to make it happen.

\n\n\n\n

While I am not suggesting that you must go down the path that I once did, it is always an option worth exploring. Many great developers began with this same type of frustration. They had a problem and needed a fix for it.

\n\n\n\n

Open-source is about giving and taking. When you cannot pay it forward in terms of code, feedback is always welcome. That is one reason I like to highlight these questions. Even when I do not have the answer, maybe someone else will. Perhaps your requests will spark an idea for one of the many developers who read WP Tavern.

\n\n\n\n

I definitely do not have all the answers to this laundry-list of questions. It is a broad subject that will take a community to solve.

\n\n\n\n

Many of your issues might be handled by nothing more than having a conversation with the developers behind the block collection plugins you are using. Step one is to start a dialogue with them. I bet most are willing to listen to your ideas on how they can improve their products as long as you address them constructively.

\n\n\n\n

Try One-Off Block plugins

\n\n\n\nInstalling a single-use block from the editor.\n\n\n\n

The future of using blocks is going to be far more about finding and installing individual blocks rather than collections. WordPress has done its users a disservice by not actively promoting these one-off block plugins. We are over two years into the block editor and still do not have a block directory and management screen built directly into the software. Sure, users can search via the block inserter directly from the editor, but it does not replace a full management experience.

\n\n\n\n

This missing feature has helped spur massive library plugins, which have become the de facto method that most users find new blocks. Far too many plugin developers are following the Jetpack model of packaging them all together. Without full block management baked into core, this trend will only continue. At this point, it may be hard to break from the mold.

\n\n\n\n

However, you can still find a listing of available single-use blocks from the block directory on WordPress.org, at least the ones that plugin authors have appropriately tagged.

\n\n\n\nWordPress block directory.\n\n\n\n

I recommend testing these blocks before diving into a library-type plugin. There is always the risk of developer abandonment — there is nothing you can really do about that when it comes to any type of plugin other than supporting the authors.

\n\n\n\n

The block directory’s problem is that it has only a little over 120 blocks — like I said, WordPress has not done enough to promote it. This means there is not enough competition to drive innovation and bring clear winners to the forefront. Some of the blocks are hit-or-miss projects. I know this does not breed confidence, but I can say from experience that I always loved user feedback as a developer. It is the lifeblood of any project. Give the plugins a test. Even if you do not like or use them, send your feedback over to the developers.

\n\n\n\n

The following is a short, not comprehensive, list of some single-use blocks that may be appropriate for you:

\n\n\n\n\n\n\n\n

Footnotes Block Plugin

\n\n\n\n\n\n\n\n

I feel your frustration about footnotes. WordPress lacks this feature that any decent desktop-level writing software has. From past experience earning my B.A. in English, footnotes were a core part of the experience. It baffles me that the most-used CMS in the world has yet to add even a basic version of footnotes to its toolset.

\n\n\n\n

Fortunately, other like-minded people want to see footnotes in WordPress. Ella van Durpe has a draft of a footnotes feature on the Gutenberg repository. This is an ongoing, three-year discussion. There is no reason to believe it will be baked into core soon, but it is reason enough to be hopeful.

\n\n\n\n

The Academic Blogger’s Toolkit plugin supports footnotes. It has not been updated in a year and could be overkill for what you need. However, it would not hurt to give it a test run.

\n\n\n\n

Several footnote plugins in the directory should work fine with the block editor. The standard method employed by many of them uses a ((double-parentheses)) to add footnotes from within the editor. Those notes are then parsed before being displayed on the front end.

\n\n\n\n

That is not my style. I prefer the visual separation of the references and the footnotes in both the editor and the front end. The great thing about the block editor is that you can manually build footnotes without a plugin. Or, at least you can create almost-footnotes.

\n\n\n\n

Cathy Meder-Dempsey, a genealogist and blogger for Opening Doors in Brick Walls, has an exhaustive tutorial on manually adding references and a footnotes section with the block editor. It is not a perfect solution and works best when you have only a few footnotes. This is because the reference links jump to the overall footnotes section rather than the individual notes. It is a quick solution in a pinch.

\n\n\n\n

This post is a part of the Ask the Bartender series. If you have a question about WordPress, feel free to shoot it over. Your question could be featured next.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 17 Feb 2021 22:34:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"WPTavern: Gutenberg Plugin Marks 100th Release with 10.0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112179\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:157:\"https://wptavern.com/gutenberg-plugin-marks-100th-release-with-10-0?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-plugin-marks-100th-release-with-10-0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5374:\"

Gutenberg 10.0 was released today as the 100th iteration of the block editor since the project began four years ago. Although 10.0 may seem like a big number, it’s just another incremental step forward in terms of new features, improvements, and bug fixes.

\n\n\n\n

Version 10.0 introduces a new dynamic pages block for building navigation menus. It can be added inside a Navigation block or used on its own.

\n\n\n\n
\n\n\n\n

Sometimes when you’re clicking around inside block editor content, it’s hard to select the parent block with nested blocks. This release makes the parent block selector visible and offset in the block toolbar. An easier way to select the parent block will become even more important as the quote block is on track to get nesting support with paragraph, heading, list, and code blocks allowed as children.

\n\n\n\n
\n\n\n\n

Version 10.0 adds a darker social links state for dark themes, brings block patterns to the inserter for template parts and other non-root level positions, and improves keyboard navigation in the block patterns inserter. The plugin also introduced dozens of improvements and new features to the experiments in progress for the site editor, full-site editing architecture and blocks, as well as the navigation and block-based widgets screens.

\n\n\n\n

Riad Benguella marked the 100th release milestone with a few reflections from his unique vantage point as a technical lead on the project. He commented on the friction and pushback that contributors had to navigate in Gutenberg’s earlier days:

\n\n\n\n

With all the attention that the project received, it became difficult to discern constructive debate from mere opposition. We each come with our own context, and some people had a fixed idea about what they wanted for the project. Some wanted to just reuse an existing page builder, others wanted to revive the Fields API project, some wanted it to be front-end-first, others wanted it to just replace the content area of the classic editor, some wanted it to be in Vue.JS, others wanted no change at all. With a product used by 40% of the web, we need to find consensus, and when we make compromises it can be so difficult for those involved to avoid the feeling that their voice is being ignored.

\n\n\n\n

He admits that the project made a few mistakes along the way with sub-par stability on some releases, and performance and accessibility issues. In spite of all the difficulties contributors encountered, they have been able to win over many users who were initially not excited about the block editor.

\n\n\n\n

“It’s a delight to see some people who had very strongly disagreed with the initial vision or approach to Gutenberg gradually come to enjoy using the editor and join the project to carry on its vision,” Benguella said. “Others might still not like it, some won’t ever use it. One thing is certain though, we’ll continue doing our best to push forward, improve what’s already shipped and ship new exciting features; we’ll continue making mistakes and hopefully continue learning from them.”

\n\n\n\n

The block editor has opened up a whole new category of tools for people building WordPress sites, even before full-site editing makes its debut. In the comments of the release post, Gutenberg users mentioned the themes and plugins that have helped them ramp up into delivering sites built 100% with the block editor.

\n\n\n\n

“When I first looked at Gutenberg I hated it,” web developer John Brown said. “Now, two years on, do a mix of Gutenberg and Kadence Theme and blocks and you can build virtually anything.

\n\n\n\n

“The sites we have converted from other page builders to Gutenberg work just fine and we get great statistics on GTMetrix, Pingdom and Google Page Speeds.

\n\n\n\n

“I will say, you need to learn how to use it, but when you get your head around it, you can make anything that a client needs.”

\n\n\n\n

Another user who adopted the editor in the early stages said he has reached the point where he can build sites without having to use a lot of extra tools.

\n\n\n\n

“I started using Gutenberg at 2.0 and never looked back since then,” software engineer Orlando Alonzo said. “Now I’m starting to produce full sites with nothing more than GeneratePress Premium and Gutenberg.”

\n\n\n\n

Version 10.0 marches forward with the same pioneering experimentation in the full-site editing (FSE) project that has brought the editor to the stable state it’s in today. Contributors are aiming for an MVP for FSE in April, with version 1 in core in WordPress 5.8, expected June 2021. Check out the 10.0 release post for the full details on FSE progress and other improvements to the editor.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 17 Feb 2021 21:43:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"BuddyPress: BuddyPress 7.2.0 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=317263\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"https://buddypress.org/2021/02/buddypress-7-2-0-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:921:\"

Immediately available is BuddyPress 7.2.0. This maintenance release fixes six bugs mainly related to issues when the BP Nouveau Template Pack is used with the Twenty Twenty-One WordPress theme. For details on the changes, please read the 7.2.0 release notes.

\n\n\n\n

Update to BuddyPress 7.2.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

\n\n\n\n

Many thanks to 7.2.0 contributors 

\n\n\n\n

iamthewebbvapvarun & imath

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 17 Feb 2021 20:01:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"WPTavern: Phoenix, a Block-Based WordPress Theme With a Sidebar\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112133\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/phoenix-a-block-based-wordpress-theme-with-a-sidebar?utm_source=rss&utm_medium=rss&utm_campaign=phoenix-a-block-based-wordpress-theme-with-a-sidebar\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5013:\"

Earlier today, the Phoenix theme was merged into the WordPress Theme Experiments repository on GitHub. Like all themes in the repo, it is not meant for use on a live site. It is a project to test new ideas for the upcoming Full Site Editing (FSE) system.

\n\n\n\n

Imran Sayed of Codeytek Academy created the theme and is hosting a live demo. Those who want to give it a test drive can grab the code from GitHub.

\n\n\n\n

Until now, every block-based theme I have seen has been missing a left or right sidebar. I am a fan of the open-canvas format that focuses on content, hiding the often-frivolous widgets that only detract from the important bits. However, sidebars are sometimes useful and even necessary.

\n\n\n\n

When I refer to a “sidebar,” I am not talking about the dynamic sidebar system of widgets that we have all come to love or hate since WordPress 2.2. That system no longer exists in the world of FSE. The site editor merely has a concept of templates and template parts, which are containers for blocks. It is up to the theme author to give some default structure, even building template parts that work like sidebars.

\n\n\n\n

A sidebar in the Phoenix theme literally means a block area on the side of the page.

\n\n\n\n

It is such a simple idea, one that is nearly as old as blogs. It hardly seems something worth getting excited about, but I have been waiting a while to see a block-based theme with a sidebar. The feature further legitimatizes the path that WordPress is heading down. The greater theme development community needs to see these simple architectural ideas put into action. They need to see someone saying, “Hey, here’s how you do this simple thing you’ve been doing for a decade in this new system.”

\n\n\n\n

Phoenix only adds a sidebar on the front page, but this is a start.

\n\n\n\n

The theme is also more ambitious than some previous attempts by mixing static and dynamic features on the front page. Phoenix includes a header area with the standard site title and a nav menu. Below that, it adds a static hero section that users can customize.

\n\n\n\nFront page hero section.\n\n\n\n

It then uses the Columns block to split the content and sidebar. On the left, the theme uses the Query block to list the latest posts. On the right, it adds a sidebar template part.

\n\n\n\nLatest blog posts section next to sidebar.\n\n\n\n

The footer design is also bold in comparison to some other block-based themes so far. It has a full-width Cover block, which is followed by a group of columns, which is basically what a footer sidebar is.

\n\n\n\nLarge footer area with columns.\n\n\n\n

Again, these are basic concepts that theme authors have been doing for ages. The idea behind many of these experimental themes is to start testing how to make them a reality using blocks. By the time the site editor lands in WordPress, theme authors can build upon these initial techniques and create more complex layouts.

\n\n\n\n

This is especially the case with front-page design. If there is one area that has created roadblock upon roadblock when developing traditional themes, it has been the front page. Whether through custom options pages, the theme customizer, widgets, or a host of other solutions, nothing has stuck for well over a decade now. While the single post template is arguably the most important view on a WordPress website, it is the front page design that draws in the average user. It is also one of the biggest points of failure after users install a theme. That carefully-crafted front page in the demo looks nothing like what the users see on their own sites.

\n\n\n\n

Phoenix is a step in the right direction because it shows how to mix these basic elements. Because it is a block-based theme, end-users have instant visual feedback in the site editor if they want to customize it.

\n\n\n\n

The next step is for more themers to get involved in the Theme Experiments project. Start exploring more complex ideas and layouts. Use this moment to share knowledge and build upon the work that so few others are doing right now.

\n\n\n\n

Phoenix is by no means a perfect theme. The front end and the site editor are not a one-to-one match at this point. Everything that looks wrong with it in the editor highlights just how far we have left to go.

\n\n\n\n

I am carefully maintaining hope while being a realist about where FSE will be in 2021. This is a year for exploration. Perhaps we will have a few breakout themes that push the envelope toward the end of the year, but it all starts with experimental projects like Phoenix.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 16 Feb 2021 23:07:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WPTavern: Easy Digital Downloads 3.0 Now in Public Beta\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112130\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:155:\"https://wptavern.com/easy-digital-downloads-3-0-now-in-public-beta?utm_source=rss&utm_medium=rss&utm_campaign=easy-digital-downloads-3-0-now-in-public-beta\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2646:\"

Easy Digital Downloads (EDD) is coming up on a major milestone with version 3.0 in active development, a huge undertaking spanning nearly three years. The first beta was released today with one of the most extensive and technically detailed beta testing guides I’ve seen for a major plugin update.

\n\n\n\n

Version 3.0 will migrate the bulk of EDD data out of WordPress core tables to custom database tables. During the lifespan of this nearly 10-year old plugin, practices have changed regarding the use of custom tables and the coming update will bring improvements to performance and data structures. Testers can download it from GitHub and go through the data migration process. The beta testing guide specifies a list of seven tables to check after migration to ensure there are no issues with data transfer or backwards compatibility.

\n\n\n\n

The release post noted that the order refund functionality is still in development and will not yet be ready for testing until the beta 2 release.

\n\n\n\n

EDD first came on the scene in 2012. Inspired by Jigoshop and WooCommerce’s successes with the “extensions marketplace” business model, EDD creator Pippin Williamson has prioritized extensibility from the beginning. There are now more than 102 official extensions and themes, and hundreds more third-party extensions. Anytime EDD core moves forward with major changes, the wide community of extensions is a critical consideration.

\n\n\n\n

For this reason, EDD is pursuing a strategy of releasing a series of updates to as many extensions as possible that contain compatibility with 3.0. The announcement lists eight extensions, including Stripe Gateway, Software Licensing, PDF Invoices, Commissions, and others which have been updated and can be used in testing.

\n\n\n\n

EDD is also encouraging third-party developers to check out the 3.0 code base and ensure compatibility ahead of the official release. WordPress freelancers and agencies who have clients using EDD will want to test out the 3.0 beta 1 ahead of time to find any concerns with data migration that would prevent their clients from having a smooth transition when the official release drops.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 16 Feb 2021 23:03:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"WordPress.org blog: WordPress 5.7 Beta 3\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9727\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-3/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4753:\"

WordPress 5.7 Beta 3 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it.

\n\n\n\n

You can test the WordPress 5.7 Beta 3 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just three weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

Some Highlights

\n\n\n\n

Since Beta 2, 27 bugs have been fixed. Here is a summary of some of the included changes:

\n\n\n\n
  • Adjusted color contrast on various admin buttons to improve accessibility and readability (#52402)
  • Several fixes for the Twenty Twenty-One theme (#52287, #52377, #52431, #52500, #52502, #52412)
  • Replaced editor typeface with system fonts to improve privacy and performance (#46169)
  • Added i18n support to register_block_type_from_metadata function (#52301)
  • Media upload errors are now more accessible (#47120)
  • New filter to modify how pagination links are rendered when using paginate_links function (#44018)
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 171 tickets in WordPress 5.7, including 64 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @audrasjb and @lukecarbis for your peer revisions.

\n\n\n\n
\n\n\n\n

Finish line ahead
Defects in focus
We are almost there…

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 16 Feb 2021 21:25:34 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"WPTavern: Video: Matt Mullenweg and Josepha Haden Chomphosy Join WordCamp India for Fireside Chat\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112036\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:237:\"https://wptavern.com/video-matt-mullenweg-and-josepha-haden-chomphosy-join-wordcamp-india-for-fireside-chat?utm_source=rss&utm_medium=rss&utm_campaign=video-matt-mullenweg-and-josepha-haden-chomphosy-join-wordcamp-india-for-fireside-chat\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4002:\"

If you are living in part of the world where the polar vortex has plunged the weather into record-cold temperatures, you might enjoy this fireside chat from WordCamp India 2021. The event was held online over the span of three weekends from Jan 30 to Feb 14. Matt Mullenweg and Josepha Haden Chomphosy joined organizers over the weekend for an invigorating conversation about India and the global WordPress community.

\n\n\n\n

One of the opening questions from the audience was about the growth of newsletter services like Substack, which seem no different from a WordPress-powered blog with emailing features. The audience asked how WordPress can help people who want to start their own newsletter service.

\n\n\n\n

Mullenweg said that although “pretty much everything is possible in WordPress,” some things require putting together many different plugins and might have a higher barrier to entry:

\n\n\n\n

I think there’s two ways we can address that. One is by education. People can actually get through a lot steps if there is a good guide. A great guide around how to build something just like Substack on your WordPress blog where you own everything would be really valuable and popular. Second, when we make that guide we will probably see some steps that we could eliminate or smooth, friction points which we could make easier for people to get through. Whenever we see something like a Substack pop up on the market, I think it’s a great moment for reflection to see where can that educate us to where we can improve our own product, plugins, and educational material.

\n\n\n\n

Mullenweg also shared that Automattic has just made “a pretty large investment” in Titan, a company based in India, which he said will be a big part of how WordPress.com offers email going forward.

\n\n\n\n

Josepha Haden Chomphosy gave an update on what’s next for in-person events, which may resume later in 2021 if things go well:

\n\n\n\n

In the short term, the future of WordCamps is very careful. There’s an ongoing conversation about how we can bring everybody back together in a way that keeps us connected and provides all of that normal WordPress feeling but also is incredibly safe. It’s hard. There’s a lot of unknown stuff, but the success with the vaccinations we have seen so far is really heartening. Fingers crossed we can start allowing quite small in-person events starting in Q3 of 2021.

\n\n\n\n

Haden Chomphosy also indicated that hybrid events may be here to stay, streaming to an online audience with captioning and translation available when possible, to make in-person events more accessible:

\n\n\n\n

We can, with a little bit of pre-planning and with a little bit of intention, make sure that our events, even if they are in person, have an online component that helps to make sure the education that we’re trying to provide there gets to as many people as possible without having that barrier to entry of having to physically go to a place and pay your time to get there and pay your money to get there. I’m hoping that we see a little more consistent planning about that in our in person events so we can keep offering a more global mindset to our events overall.

\n\n\n\n

She touched on the topic of training and education, noting that WordPress’ 0-101 level content is somewhat lacking. This critical “make or break” onboarding stage could be improved for many users.

\n\n\n\n

They also discussed the need for attracting a younger generation of contributors that WordPress veterans can mentor to infuse new life into the project. Check out the recording below.

\n\n\n\n
\n\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 16 Feb 2021 03:11:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"WPTavern: Newspack Newsletters Now Live in the WordPress Plugin Directory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=112065\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/newspack-newsletters-now-live-in-the-wordpress-plugin-directory?utm_source=rss&utm_medium=rss&utm_campaign=newspack-newsletters-now-live-in-the-wordpress-plugin-directory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6576:\"

Automattic released its Newspack Newsletters project to the WordPress plugin directory earlier today. It is the first Newspack-related plugin the company has made available outside of GitHub or its custom platform.

\n\n\n\n

Newspack is primarily a service geared toward small and medium-sized publications. Its goal is to work with news industry leaders to create a platform for bringing WordPress to more newsrooms worldwide. El Soberano, a Chilean news publication, became the first site to launch on the service in October 2019. Earlier this month, Newspack showcased 60 sites running on the platform.

\n\n\n\n

The platform is more than one theme, plugin, or service. The code is open-source, available on GitHub, and free for anyone to use via self-hosted WordPress. Each plugin is built based on feedback between publishers and the Newspack development team to solve real-world problems for publications.

\n\n\n\n

The downside? Until now, the various Newspack plugins have all been hosted on GitHub, which is a developer-centric platform.

\n\n\n\n

Small newsrooms may not have an onboard developer or IT team. The discoverability of necessary plugins will often happen through WordPress.org. With Newspack Newsletters landing in the plugin directory, it could be an indication of things to come.

\n\n\n\n

The Newspack team should not stop with their first plugin. The entire suite of tools should be available through the plugin directory. The Newspack Blocks plugin could have uses outside of news sites. Many users might find value in its Post Carousel block or various patterns. The Newspack Content Converter bulk-converts classic WordPress posts to the block system. Even the Newspack theme and its child themes should have a home on the official WordPress theme directory.

\n\n\n\n

“We are planning to release the Newspack Content Converter on WordPress.org next, which is expected to happen in the next two months,” said Newspack lead Jeff Rabb. “Newspack has used this plugin on nearly every site we’ve launched to convert massive archives to Gutenberg, and we suspect this functionality will be very useful to the community. Several of Newspack’s blocks are already available on WordPress.org through the WordPress.com Editing Toolkit. The toolkit plugin includes the Blog Posts and Post Carousel blocks, both of which originate from the Newspack Blocks plugin. We’ll continue to examine whether other products our team is developing may be of wider use to the community, and release on WordPress.org as appropriate.”

\n\n\n\n

How the Plugin Works

\n\n\n\n

Newspack Newsletters launched in July 2020. The plugin initially integrated with Mailchimp. However, the team has since added Constant Contact support. It also requires integration with Mailjet Markup Language (MJML) for transforming the HTML from WordPress into responsive markup for email clients.

\n\n\n\n

After installing the plugin, users must set up the API keys from the third-party services they are using. Steve Beatty has a complete walkthrough of the process in the following YouTube video:

\n\n\n\n
\n\n
\n\n\n\n

The plugin adds a new post type for managing newsletters. It works much the same way as any other post or page. When adding a newsletter, users are initially presented with four layout options:

\n\n\n\n
  • Breaking News: Displays the latest blog post and a message afterward.
  • Daily/Weekly: Lists the latest posts from the blog and a section for sharing curated links from around the web.
  • Daily/Weekly (No Images): An alternate version of the Daily/Weekly layout without post featured images.
  • Support: A template for asking readers to support the publication.
\n\n\n\n

Of course, these are only starting points. Users can begin from any of these four templates or wholly from scratch. The plugin also provides an option for saving newsletters as custom layouts.

\n\n\n\nSelecting a layout from the newsletter screen.\n\n\n\n

While the plugin works similarly to posts and pages, it does limit the available blocks to those more suitable for emails. This subset includes text-based blocks like Paragraph, Heading, Quote, and List. It also supports few design-type blocks, images, and the plugin’s Post Inserter block.

\n\n\n\n

The user experience is straightforward. Newsletter-specific settings are in the sidebar panel. One of the simple-but-useful features is a “Styling” tab that allows users to make wholesale font and color changes for a single newsletter.

\n\n\n\nCreating and sending a test newsletter.\n\n\n\n

Users can even send a test email before publishing to make sure everything is in order. This feature also makes it easy to test on a local machine before deciding if the plugin is worth using in production.

\n\n\n\nNewsletter viewed via Gmail.\n\n\n\n

Usage of the ads system was not immediately apparent. It was not until I ran a test email from the Edit Newsletter screen that I realized that the ad I had created was attached to the end of the email. Even after figuring this out, I still felt a disconnect between how ads worked for newsletters. There is a sidebar setting for disabling ads on the Edit Newsletter screen. Perhaps I am missing something, but ad placements should be a block the user can insert into the content canvas.

\n\n\n\n

Despite feeling at odds with the ads system in the plugin, the overall experience was mostly smooth. The plugin is not overly complex, which can sometimes be the case when a developer attempts to add too many features. Newspack Newsletters has managed to hit that Goldilocks zone that should go over well with the average end-user.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 15 Feb 2021 23:17:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"WPTavern: WordPress Contributors Discuss Scaling Back Releases: “4 Major Releases Is Not a Viable Plan in 2021”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111915\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:261:\"https://wptavern.com/wordpress-contributors-discuss-scaling-back-releases-4-major-releases-is-not-a-viable-plan-in-2021?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-contributors-discuss-scaling-back-releases-4-major-releases-is-not-a-viable-plan-in-2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4763:\"

WordPress contributors are considering scaling back the planned number of releases in 2021. In a post titled “Making WordPress Releases Easier,” WordPress’ Executive Director, Josepha Haden Chomphosy summarized three years of research on reducing the effort required to have a successful WordPress release:

\n\n\n\n

From my research, the work to automate what we can (and potentially get the project ready for more releases per year) would take 3-4 dedicated developers who are proficient in our backend tools/infrastructure, at least a project manager, 1-2 internal communications people, and probably a year or more of work (if we had all the resources, and they were working at full capacity). This means that 4 major releases is not a viable plan in 2021.

\n\n\n\n

Haden Chomphosy cited a number of challenges, including update fatigue, risk of contributor burnout, a lengthy onboarding process for contributors skilled at doing the administrative work required during a release, and a lack of seasoned core developers to keep the process moving efficiently. She identified a few improvements that could be made in the short-term to improve the experience (mentorship, triage, feature proposals, and better product/processes) but other necessary updates to automation and scaling contributors could take a year or more of work.

\n\n\n\n

The post is open for feedback but the decision to scale back the releases seems to have already been made. Ryan McCue, Director of Product at Human Made, commented with concerns about altering the predictability of WordPress releases and introducing what seems like a last minute change:

\n\n\n\n

The predictability of the release calendar was a major step forward for the project, and for companies and teams (including mine) building on top of core. We have intentionally planned and structured our year ahead with this calendar in mind. Obviously, due to the tentative nature, we weren’t expecting dates to be final, but the overall picture seemed to be fairly clear with smaller shifts expected.

Whether WordPress does one release or twelve a year doesn’t matter hugely to me, but ensuring it’s predictable matters hugely for our planning, communication with clients, and for our day-to-day processes. Seeing this change pretty last moment is not encouraging, and is going to have real repercussions for us.

I sympathise with and understand the limitations of capacity and overhead of releasing more often, but changing this plan needs to be clearly communicated upfront, and with a clear plan that isn’t going to change again.

\n\n\n\n

Haden Chomphosy responded with clarification on the conclusion communicated in her post. Without in-person events, contributors have struggled to keep the project moving at the same pace as before. She said the previous schedule had been made without much input from the contributors who are the most impacted.

\n\n\n\n

“Perhaps the more appropriate way to have stated my conclusion would have been: ‘Barring any major changes to the available contributors and global circumstances, I don’t see how we can ship four releases this year without creating undue strain on the team who currently runs those processes,\'” Haden Chomphosy said.

\n\n\n\n

Component maintainers and theme/plugin developers participating in the conversation also confirmed that WordPress’ frequent updates have posed a challenge and that the risk of burnout is real. Entering into year two of a global pandemic has undeniably impacted contributors’ availability and momentum, and Haden Chomphosy’s post seeks feedback on a way forward that will avoid putting WordPress’ dedicated contributors under additional strain.

\n\n\n\n

After this post was published, the release schedule for 2020/2021 was updated to show that release dates for WordPress 5.8 and beyond are yet to be confirmed.

\n\n\n\n
\n\n\n\n

Some stakeholders will undoubtedly be disappointed with the current lack of certainty on release dates for the upcoming year, but the conversation is still open and changes will be communicated as soon as contributors find an acceptable way forward.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 12 Feb 2021 23:09:21 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Design Lab Releases Artpop, a Block-Ready WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111904\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:177:\"https://wptavern.com/design-lab-releases-artpop-a-block-ready-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=design-lab-releases-artpop-a-block-ready-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4950:\"

Perhaps the fates have stepped in to prove a point. After I wrote a 2,000-word piece on the lack of quality themes in the theme directory, they decided to send a message. Not once, but twice this week, a new WordPress theme has managed to catch my eye. My rational mind knows that it was just a weird twist of timing, but I am not discounting the supernatural.

\n\n\n\n

Design Lab’s sixth theme, Artpop, went live in the theme directory this week. It is marketed as a block-ready WordPress theme for blogs, portfolios, businesses, and WooCommerce shops. For the most part, it has a clean and open design that provides users a lot of wiggle room to build out pages with the block editor.

\n\n\n\n

Simplicity is the name of the game, and Artpop has it in spades. It adds just enough small touches to make some elements pop. Of course, I am a fan of the blockquote style, which is one area that theme authors can leave their signature:

\n\n\n\nBlockquote design.\n\n\n\n

The theme is not without a few design issues. The typography does not lend itself well to long-form content, despite being pushed as a blogging theme. With a 760px-wide content area and 16px font-size, comfortable reading is thrown out the window. Sure, it looks good in the demo, but it is not practical in the real world.

\n\n\n\n

Where the theme gets things right is its coverage of block styles. End-users can put together custom layouts that do not look broken. After two years of the block editor being in core, this should be the standard experience with all themes, but I cannot stress how much it isn’t.

\n\n\n\n

I even recreated the “creative” homepage design that ships with the pro version of the theme to see how easy it was. If you would rather work with premade layouts, the upgrade is a mere $30. However, if you know your way around the block editor, you can definitely build the layouts yourself.

\n\n\n\nEditing creative-style Artpop Pro homepage design.\n\n\n\n

This is the direction that theme design should be going. Provide all the capabilities in the free product. Upsell the added value of having all these extra layouts/patterns premade and available at the click of the button.

\n\n\n\n

By default, the homepage displays a five-post grid. A large featured post sits in the middle while the others are aligned on either side of it. This unique layout was what immediately drew me into the theme.

\n\n\n\nGrid-style featured posts.\n\n\n\n

Users can also choose a carousel of featured posts instead of the grid via the customizer. I am typically not a fan of slider-like sections. However, carousels, where it is clear there are extra posts to view, are sometimes an exception to the rule.

\n\n\n\nCarousel-style featured posts.\n\n\n\n

After working with block-based themes and the site editor so much over the past few months, these customizer settings feel ancient — both from a developer and end-user viewpoint. It reminds me to applaud theme authors for the years of work they have put into non-optimal systems. There will be a day when adding these types of layouts do not require nearly as much effort.

\n\n\n\n

The one annoyance with the homepage options is that the theme author created a separate “Homepage” panel, which can easily be confused with the existing core “Homepage Settings” section. There is no good reason to not combine these two and free up some room in the customizer.

\n\n\n\n

I would also like to see just a general cleanup of the theme’s customizer integration. The theme does not have many options, but it has nearly a dozen top-level sections, consuming precious real estate in the customizer.

\n\n\n\n

The biggest downside to the theme is that it adds a customizer control that prints “Try Artpop Pro / Need more options?” to every section it adds. This is in addition to its two top-level upsell sections. The thing that makes it worse, however, is that it is broken. The “Try Artpop Pro” text is meant to be linked, but the theme has a bug that outputs the text followed by a broken link tag, which is only visible in the source code.

\n\n\n\n

There really is no need for 10 upsell links in the customizer, even if eight of them are broken. The theme is nice enough on its own. The links just degrade it.

\n\n\n\n

Aside from a few annoyances, the theme is worth exploring for those in the market for something new. While it is a freemium product, users can get a lot of mileage out of it without upgrading.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 12 Feb 2021 18:49:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"WPTavern: Elementor to Roll Out Significant Pricing Hike for New Customers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111909\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:193:\"https://wptavern.com/elementor-to-roll-out-significant-pricing-hike-for-new-customers?utm_source=rss&utm_medium=rss&utm_campaign=elementor-to-roll-out-significant-pricing-hike-for-new-customers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5799:\"

Earlier this week, Elementor announced a significant pricing hike coming in March 2021 for new customers:

\n\n\n\n

On March 9th, 2021, Elementor will be adding new Studio and Agency Pro subscription plans and adapting the Expert plan, to best accommodate users’ growing needs. These changes will only apply to new purchases. If you’re on an existing active subscription plan, nothing changes for you.

\n\n\n\n

The most radical change is coming to the Expert plan, which previously offered 1,000 sites for $199/year. The plan has been pared back to support 25 sites. Users who need support for 1,000 websites will need to purchase the Agency plan at $999/year, a 400% increase on the price for what was previously offered under the Expert plan.

\n\n\n\n
\n\n\n\n

Elementor emphasized that customers with an existing active subscription will not be affected by the pricing changes. The company is also giving customers a chance to purchase the current Expert plan ($199/year for 1,000 sites) before it is discontinued before March 9, 2021. Existing customers on the Expert plan have the option to upgrade to the Agency plan at a 50% discount (valid from March 9, 2021 until June 9, 2021).

\n\n\n\n

Over the past 48 hours, Elementor’s announcement has received 270 comments primarily from disgruntled customers. Some of them are opposed to the pricing hikes and others are unclear about what it means for their subscriptions long term. Elementor representatives’ responses to questions on renewal have been studiously unclear.

\n\n\n\n

One customer points out that the announcement does not explicitly say that existing subscriptions will retain the legacy pricing past the end of the billing period for this year. It does not state that existing active subscriptions will remain at the same price indefinitely, nor does it specify a term after which the pricing will go up.

\n\n\n\n
\n\n\n\n

Elementor Evangelist Ben Pines, head of the company’s web creator program, has left the question regarding renewals open, saying he “cannot see into the future.” Customers were left wondering whether the lack of clarity on the future of renewals is a foreshadowing of prices going up after the current billing year.

\n\n\n\n

“No one can predict the future, and offering a lifetime price guarantee is irresponsible for any future-facing company,” Pines told the Tavern. “What we can guarantee for sure is the extent to which we value user loyalty. This is why they have never experienced any price change in 4.5 years. We value our users’ trust, and have taken every step to ensure that our loyal users’ active subscriptions are not affected.”

\n\n\n\n

The company has not confirmed whether existing active subscriptions will be guaranteed the lower pricing forever and reserves the right to eliminate legacy pricing at any point in the future.

\n\n\n\n

In the announcement, Pines said the pricing model for Elementor Pro has hardly changed since it was introduced in 2016 and that it is time to update it to best accommodate customers’ evolving needs. Elementor is now installed on more than 7 million websites and caters to a wide community of users with varying levels of expertise. The new plans have access to 24/7 live chat support and a handful of other benefits, but many customers participating in the comments said they do not require chat support.

\n\n\n\n

The upcoming pricing hike has heightened tensions for customers who feel the dramatic increase is unjustified for the software in its current state. They cited usability issues, persistent bugs, and performance problems that remain unfixed. Additional support features do not make the higher prices more compelling for this segment of the company’s customers.

\n\n\n\n

Some who were disturbed by the radical price increase called for the company to consider creating a middle ground offering for the updated Expert tier.

\n\n\n\n

“I agree that 1,000 websites for $199 is low,” one customer commented. “Many small people will never create 1,000 websites. What bothers me is $199 for 25. Would it be more reasonable if it was $199 for 50, to have some middle ground? Or maybe you do not want the little people around any more.”

\n\n\n\n

A handful of customers commenting were unfazed, noting that anyone who builds 1,000 websites using Elementor and cannot afford $1 per work order should reconsider their business model.

\n\n\n\n

Pricing changes can be a major source of friction for existing customers, as GitLab recently discovered when dropping its Bronze/Starter Tier and imposing a 5x price increase on those features in a higher tier. Although the immediate impact of pricing increases will primarily hit new customers, it’s the existing customers who have been paying for subscriptions for years who have the strongest opinions on the changes.

\n\n\n\n

Raising prices to introduce more value for customers or to account for the increased support burden is a natural evolution for companies that experience rapid growth over a short period of time. Getting existing customers to lock in their auto-renewals by offering legacy pricing is also a strategy for ensuring a more predictable financial future for the company. But Elementor’s lack of clarity regarding term length for the discounted renewal pricing is the primary reason for all the agitation in the comments on the announcement.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 12 Feb 2021 04:58:16 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WPTavern: WP Feedback Rebrands To Atarim, Moves To a Full SaaS Model\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=110579\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/wp-feedback-rebrands-to-atarim-moves-to-a-full-saas-model?utm_source=rss&utm_medium=rss&utm_campaign=wp-feedback-rebrands-to-atarim-moves-to-a-full-saas-model\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5872:\"

Earlier this week, WP Feedback founder Vito Peleg announced the company was changing its brand to Atarim. After 18 months since its launch, it would also be moving toward a complete Saas (Software as a Service) model.

\n\n\n\n

WP Feedback was created as a standalone plugin. The goal was to provide a visual feedback tool that agencies and developers could use to communicate with clients rather than spending time deciphering unclear emails, chat messages, and phone calls.

\n\n\n\n

“Starting as a freelancer and then an agency owner myself, it was always a huge pain to get clients to provide me with the content and design feedback I needed,” said Peleg. “And this led to us building a tool for us that worked extremely well with our workflow, which led to the decision to take this to the market.”

\n\n\n\n

However, over time, the product evolved into something bigger.

\n\n\n\n

“As we started gaining traction, I always kept a pulse on our users (now with over 5,000 freelancers and agencies), and it became clear that a standalone plugin, while it did do the trick, was simply not enough — especially for those that manage multiple websites and clients at the same time,” said Peleg. “It solved a huge part of the problem, but not the workflow in its entirety. There was a clear demand for us to build a centralized area to gather all feedback so we then created our Agency Dashboard — a cloud-based application that allowed our users to gather all the requests from different clients and websites to manage them in a single place.”

\n\n\n\n

Peleg said the Agency Dashboard revealed a more complex problem in the industry. Agencies were patching together several different tools to provide various aspects of their services. These tools were leading to unnecessary friction and slowing down jobs, often adding weeks of additional time.

\n\n\n\n

The team tackled more than they had initially bargained for. In 18 months, they added over 150 features to the WP Feedback platform. Peleg said the project has helped agencies and developers reduce between 50% and 80% of the previous time delivering projects and supporting clients.

\n\n\n\n

In 2020, the WP Feedback’s users marked over 100,000 tasks as complete. Peleg calculates this has saved the industry over five years of unnecessary back and forth.

\n\n\n\n

“The name WP FeedBack continued to position us as what version 1.0 was — a basic visual feedback plugin,” he said. “So along with version 2.0 that is releasing this week, I decided it’s a great opportunity to revamp the whole experience with a rebrand, repositioning, and a whole bunch of new ways that users can use our software to improve their lives.”

\n\n\n\n

Peleg said that nothing is really changing for existing customers other than having access to more tools. It should be a smooth transition for them. The goal now is to attract new customers.

\n\n\n\n

“I also hope that this transition will allow our industry to see the new reality we’re creating for delivering website projects and why it’s insane that a 5-6 days project still takes 6-8 weeks to complete,” he said.

\n\n\n\n

How the Service Works

\n\n\n\nAtarim Agency Dashboard.\n\n\n\n

There are two sides to Atarim. One is a client-interface plugin installed on each project website; the other is the Agency Dashboard.

\n\n\n\n

“The plugin’s role is to provide a simple experience for clients to provide the content you need, approve the designs and request ongoing support,” said Peleg. “Allowing to visually click any part of the website (including in the wp-admin screens) and just leave a comment. The agency will get an automated screenshot, the screen size, browser version, and a button that will take them directly to the request, logged in, with one click.”

\n\n\n\n

Freelancers or agencies work from within the Agency Dashboard. This serves as a central location for all of the work that happens around client websites.

\n\n\n\n

Technically, WP Feedback has already been a SaaS product with an accompanying plugin since launching its central dashboard early in the product’s history. Version 2.0 completes the transition from a plugin to a full-on SaaS. Feedback and other data are no longer saved to the client websites. Instead, they are hosted via Atarim.

\n\n\n\n

“Over time, we noticed that it created unwanted bloat to the websites that were using our tools extensively, so off-loading all the data and loading it from our side, was the natural route,” said Peleg. “But since this is how the platform was initially built, this was a massive undertaking that I’m very happy that we finally completed.”

\n\n\n\n

The client-interface plugin is built for WordPress. However, the technology stack behind the new Atarim Agency Dashboard is on Laravel and React. The team thought it would be the best framework for speed and to work with as the company continues to scale.

\n\n\n\n

“I’ve been using WordPress myself for more than a decade — so it really comes naturally to me by now,” said Peleg. “The SaaS world is a different animal.”

\n\n\n\n

“One of the biggest challenges was transitioning everything we have built, to be pulled from the cloud as opposed to being stored locally on the client’s site. The ‘cloud migration’ project, as we called it internally, has been a year-long endeavor that, whilst it was developed constantly, was pushed back by our need to support our existing users, our growth, COVID-19, and all the other fires that happen when you’re running a startup.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 11 Feb 2021 21:54:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: People of WordPress: Pooja Derashri\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9652\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/02/people-of-wordpress-pooja-derashri/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9544:\"

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n\"Pooja\n\n\n\n

Pooja Derashri shares the story of how she went from being an introvert from a small village in India to becoming a developer and working on international projects, thanks to the WordPress community. 

\n\n\n\n

As her interest grew, Pooja started following some WordPress-based groups on Facebook, where she first heard about conference-style WordPress events known as WordCamps. She later joined her first WordCamp in Ahmedabad, India. This three day event in 2017 opened up a new world—the WordPress community—and what would become a life changing moment. “WordCamp Ahmedabad has one of the best WordPress communities in India,” she said, “and everyone, including organizers and attendees were so humble and welcoming.”

\n\n\n\n\"\"\n\n\n\n

The thirst for learning

\n\n\n\n

A fascination with how things worked and a desire never stop learning were traits that shone through in Pooja from a young age. She moved from Banera, a rural village in India, to a nearby city, where she lived with her uncle while completing her higher education. With her enthusiasm for learning, she decided to become an engineer. When thinking back on that time she says, “Being from a rural background, people in my village tended not to be keen on the idea of sending their girl child to another city for further studies. Fortunately, that was not the case for me because my parents were immensely supportive of me and my interests. They’ve always encouraged me to believe in myself and fulfill my dreams. With their support, I pursued my engineering in electronics and communication.”

\n\n\n\n

Discovering the opportunities in web development 

\n\n\n\n

On completing her engineering training, Pooja was not sure what to do next. One of her friends suggested that she should explore web development. The idea intrigued her, and she sought out learning resources to study. She also secured an internship as a PHP Developer to give herself the chance to learn alongside professionals in the field.

\n\n\n\n

Getting started with WordPress

\n\n\n\n

“I found WordPress surpassed other platforms. The vast knowledge base made it easy for me to learn.” – Pooja

\n\n\n\n

This internship led Pooja to her first job where she discovered a range of content management systems. Her view of the opportunities offered by these systems changed when the manager assigned her a small project using the WordPress platform. 

\n\n\n\n

She recalls: “I found WordPress surpassed other platforms I had worked on earlier. The vast knowledge base made it easy for me to learn.” She soon became comfortable managing WordPress, working with plugins and themes, and wanted to learn it more in-depth.

\n\n\n\n

Pooja soon joined WPVibes as its first team member. Being part of a new startup gave her a lot of experience and a chance to be involved in new processes. As the company expanded they started providing custom plugin development services per the client’s requirement and created some free and paid plugins. Pooja said, “We found it very exciting and productive. Today, we are a team of 10.”

\n\n\n\n

Encouragement from the WordPress community

\n\n\n\n

Contributing to WordPress increases your knowledge

\n\n\n\n

At the event, she was able to listen to speakers from India and abroad, many of whom shared their journey with WordPress and how it had changed their lives. “One of the most inspiring sessions was by Rahul Bansal,” she said. “He talked about contributing to WordPress and giving back to the community. He also explained how contributing to WordPress can help you to enhance your knowledge. It inspired me to contribute to WordPress.”

\n\n\n\n

The WordPress community of Ahmedabad continued to inspire Pooja and her husband Anand Upadhyay, and they later started a Meetup group in their home city of Ajmer as part of their contribution to the community. They continue to be involved in supporting local users through the Ajmer Meetup.

\n\n\n\n\"Pooja\n\n\n\n

At the next WordCamp Pooja attended, she joined its contributor day, which brings users together to give back to the open source platform and global community. Most of the contributors she met were interested in giving time to the WordPress CMS. She decided to venture into a different path and took her first steps by joining the WordPress TV group, where you can explore videos from WordPress events across the world. She also discovered the joy of translating into her local language, and is a Polyglot contributor for the Hindi language.

\n\n\n\n

In 2019, she was selected as a volunteer for WordCamp Asia in Bangkok, Thailand, and it became an impetus to become even more involved with the community. She was very excited about this role, and to be part of her first WordCamp outside India. Sadly, due to the global COVID pandemic, the event had to be cancelled. Her enthusiasm has not diminished and she is eagerly waiting to support in-person WordCamps in the future and meet even more members of the global community.

\n\n\n\n

Her determination to be part of making WordPress and sharing skills has only increased, which has led to contribute to the WordPress Training team. This team manages lesson plans and prepares content to support people who are training others to use WordPress. The team recently joined a few other teams to launch Learn WordPress, which brings learning materials together for users of all levels, and Pooja contributed to two different teams during the project.

\n\n\n\n

Message to the WordPress Community

\n\n\n\n

Pooja is eager to share her belief in the power for good in the WordPress community. “There is a huge community to help you with your learning, so start learning and try to give back to the community. It doesn’t matter if you are not comfortable with programming, there are many different ways in which you can contribute.” 

\n\n\n\n

“What I have learned in my life is that it doesn’t matter from where you came and what background you have. All that matters is your hard work and positive attitude towards life.”

\n\n\n\n

Read more stories in the People of WordPress series.

\n\n\n\n

Contributors

\n\n\n\n

Thanks to Abha Thakor (@webcommsat) and Nalini Thakor (@nalininonstopnewsuk) for writing this story, and to Surendra Thakor (@sthakor), Josepha Haden (@chanthaboune), Meher Bala (@meher), Chloé Bringmann (@cbringmann), Olga Glekler (@oglekler), Christopher Churchill (@vimes1984), Larissa Murillo (@lmurillom), and Yvette Sonneveld (@yvettesonneveld) for work on the series this month. Thank you also to Pooja Derashri (@webtechpooja) for sharing her #ContributorStory.

\n\n\n\n
\n
\n
\"HeroPress
\n

This post is based on an article originally published on HeroPress.com, an initiative focused around people in the WordPress community created by Topher DeRosia.

\n
\n
\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 11 Feb 2021 21:30:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: WordPress Passes 40% Market Share of Alexa Top 10 Million Websites\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111831\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/wordpress-passes-40-market-share-of-alexa-top-10-million-websites?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-passes-40-market-share-of-alexa-top-10-million-websites\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3647:\"

WordPress has passed 40% market share of all websites, up from 35.4% in January 2020, as measured by W3Techs. These numbers are derived from the Alexa top 10 million websites, along with the Tranco top 1 million list. By W3Techs’ estimates, every two minutes, another top 10m site starts using WordPress.

\n\n\n\n

Among the top 1,000 sites, WordPress’ market share is even higher at 51.8%, and captures a staggering 66.2% for new sites. In tracking the growth rate over the past 10 years, W3Techs shows WordPress sloping steadily upwards.

\n\n\n\n
\n\n\n\n

Matthias Gelbmann, CEO of W3Techs parent company Q-Success, explained the reasons behind this methodology:

\n\n\n\n

The reason why we don’t count all the websites, is because there are so many domains that are unused or used for dubious purposes. We want to exclude the many millions of parked domains, spam sites and sites that simply have no real content. We are convinced that including all trash domains would make our statistics a lot less useful, as millions of them just run some software stack that auto-generates useless content.

\n\n\n\n

In order to measure the “meaningful web,” W3Techs’ methodology excludes sites with default content pages displayed by Apache, Plesk, and cPanel, expired domains, and account suspended pages. It also excludes sites with the default WordPress message (“Hello world! Welcome to WordPress. This is your first post. Edit or delete it, then start writing!”).

\n\n\n\n

In January, Squarespace overtook Drupal and Wix to become the 4th most popular CMS with 2.5% market share, trailing Joomla (3.4%), Shopify (5.3%), and WordPress (64.3%). Although most open source CMS’s are now in a gradual decline with proprietary competitors rising, WordPress remains a beacon of free software that continues to sustain its incredible growth.

\n\n\n\n

In a time when some projects are abandoning open source principles when convenient for their business models, WordPress’ success has proven that an unwavering commitment to user freedoms does not have to be at odds with a thriving commercial ecosystem. These user freedoms are fiercely protected by the project’s leadership and passionate community of contributors. As a result, WordPress’ GPL licensing now underpins a multi-billion dollar economy of services, hosting companies, and entrepreneurs who have built their livelihoods using WordPress.

\n\n\n\n

Every year I wonder when the project’s growth might slow down, but end up refreshing W3Techs’ site obsessively for a week in anticipation of another major milestone, as WordPress hovered at 39.9%. Naysayers love to claim that hordes of people will stop using WordPress when major, ambitious changes are proposed. But if W3Techs’ growth tracking is any indication, new website creators and those climbing the ranks to the Alexa top 10 million have not yet gotten tired of being greeted by the message: “Hello world! Welcome to WordPress. This is your first post. Edit or delete it, then start writing!”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 11 Feb 2021 04:38:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:111:\"WPTavern: GoDaddy Launches the Hub, a New Site, Project, and Client Management Experience for Web Professionals\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111717\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:261:\"https://wptavern.com/godaddy-launches-the-hub-a-new-site-project-and-client-management-experience-for-web-professionals?utm_source=rss&utm_medium=rss&utm_campaign=godaddy-launches-the-hub-a-new-site-project-and-client-management-experience-for-web-professionals\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5308:\"\n\n\n\n

On Monday, GoDaddy officially launched the Hub by GoDaddy Pro, a dashboard that brings together all of its products, pro-specific tools, and solutions. The experience is geared toward website developers and designers, creating a central location to manage their client work.

\n\n\n\n

GoDaddy Pro is not a new service by GoDaddy. The hosting company launched its initial beta in 2015. However, GoDaddy Pro is now offering a fresh experience powered by the Hub. According to Adam Warner, the Global Field Marketing Sr. Manager at GoDaddy, the Hub is being built in collaboration with real-world web designers and developers from their Customer Advisory Board.

\n\n\n\n

The Hub is at hub.godaddy.com. Existing GoDaddy Pro users can opt-in to the new Hub experience. However, they may continue using the legacy experience at pro.godaddy.com. They can also jump between both as needed. Eventually, the Hub will completely replace the legacy experience.

\n\n\n\nThe Hub home screen.\n\n\n\n

“You can manage all your client projects, sites, and GoDaddy products from within the Hub,” said Warner. “Your clients’ WordPress sites don’t have to be hosted at GoDaddy. The Hub works with all web hosts. You can run one-click WordPress updates, security checks, backups, and other bulk site maintenance work within the Hub. We’ve seen users save an average of three hours per month, per site.”

\n\n\n\n

The Hub allows web developers to access their clients’ GoDaddy products without needing to pass around credentials. Developers can also send a pre-loaded shopping cart or purchase products on their clients’ behalf.

\n\n\n\n

“This makes it easier, and faster, to get a new project up and running,” said Warner. “You don’t have to worry about your client buying the wrong hosting plan or domain. Project management is integrated into the Hub, so you can keep track of client communications and ensure you’re delivering projects on time.”

\n\n\n\n

Part of this journey began when GoDaddy acquired ManageWP and brought its team over in 2016. The acquisition was anything but popular at the time.

\n\n\n\n

“We built the first version of our GoDaddy Pro site management tools on top of ManageWP Orion,” said Warner. “We added new GoDaddy-specific features, like allowing clients to grant delegated access to manage their GoDaddy products. We also included some premium addons for free on GoDaddy-hosted websites. Just like with ManageWP, sites managed in the Hub can be hosted anywhere, not just at GoDaddy.”

\n\n\n\n

The Hub has an interface that feels more Average Joe than tech savant. I half expected to see call-to-action buttons littering the screen, funneling users to every conceivable GoDaddy product, but none were found. Expectations from the GoDaddy of 10 years ago still linger and die hard. However, the company continues to move beyond its old reputation with its free tools and more recent willingness to give back to the open-source community, including its contribution to Five for the Future.

\n\n\n\nRunning a site security check.\n\n\n\n

“My goal in joining GoDaddy in 2018 was, and still is, to continue my participation in the WordPress and wider web designer and developer (WD&D) communities in order to listen and return feedback internally on how we can best support freelancers in starting, growing, and streamlining their businesses,” said Warner. “GoDaddy Pro (the legacy tool) already existed when I joined GoDaddy, and my mission was to spread the word and offer suggested enhancements based on real-world conversations with freelancers and their specific needs.”

\n\n\n\n

Creating clients, projects, and sites from within the interface is simple. Performance and security checks went well for the one site I have connected. The tests seemed to be spot on in comparison to other tools I have used.

\n\n\n\nSite performance check.\n\n\n\n

GoDaddy Pro membership is free. However, the Hub will have premium site maintenance tools in the future. Automated security checks, performance checks, backups, and uptime monitoring are currently free. There is no timetable on when they will be behind a paywall. Some of the premium features will have a downgraded free option when the switch is flipped.

\n\n\n\n

“While some adjacent programs (e.g. GoDaddy Reseller program, Pro subscription) may have associated costs or fees, GoDaddy Pro’s integrated project management, site management, and client management tools are free,” said Warner.

\n\n\n\n

The commitment to offering the management tools for free is undoubtedly a good thing. Thus far, I like what I am seeing with the new Hub experience.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 10 Feb 2021 22:31:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"WPTavern: Gatsby Launches New WordPress Integration, Expanding Support for Headless Architecture\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111778\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:235:\"https://wptavern.com/gatsby-launches-new-wordpress-integration-expanding-support-for-headless-architecture?utm_source=rss&utm_medium=rss&utm_campaign=gatsby-launches-new-wordpress-integration-expanding-support-for-headless-architecture\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4035:\"

The Gatsby source WordPress plugin, Gatsby Cloud’s official WordPress integration, has been marked stable as of v4 and has been released to the public. The plugin sources data from WordPress for headless setups that use Gatsby on the frontend. It is a complete rewrite of Gatsby’s previous source plugin and works in combination with the WPGatsby plugin to integrate content preview and incremental builds from Gatsby Cloud. 

\n\n\n\n

After going into public beta last year, the new source plugin was updated to enable the following:

\n\n\n\n
  • Users add a WPGraphQL-enabled endpoint to gain access to WordPress content in Gatsby’s data layer for use in React templates
  • Optimizes links and images within the content HTML with gatsby-image and gatsby-link
  • Restricts image processing and optimization to images referenced in published content, so large media libraries don’t slow down build times
  • Automatically enables access to data from any WPGraphQL extension, integrating the site with other WordPress plugins
\n\n\n\n

WPGraphQL is required as part of the setup. It turns any site into a GraphQL server, making the content easier to fetch. For the past 18 months, Gatsby has supported the development and maintenance of WPGraphQL to a stable 1.0 release. WP Engine recently hired its maintainer, Jason Bahl, to continue funding the project and expand on its own headless WordPress initiatives. This ensures that WPGraphQL will continue to have a strong future for use in decoupled projects.

\n\n\n\n

“During the beta period, we were excited to see developer teams we admire adopt the Gatsby WordPress integration for their projects,” Gatsby marketing manager Hashim Warren said. “Teams from Facebook, Bluehost, and Apollo used Gatsby’s WordPress integration to create accessible, scalable, and easy-to-update web experiences.” All of these sites and more were using Gatsby + WPGraphQL in production before the new Gatsby Source WordPress plugin was officially stable, so it has been tested extensively during the beta period.

\n\n\n\n

The rewritten plugin is better at bridging the gap to make Gatsby frontends less of a trade-off for developers who are working with editorial teams. It improves build times to be under 10 seconds for medium-sized sites.

\n\n\n\n

The complexity of editing and rebuilding Gatsby sites has been one of the chief deterrents for content creators adopting headless architecture. It imposes a more complicated workflow that the Gatsby Cloud product is designed to fix. This is how Gatsby monetizes its WordPress integration – by making the workflow more like what traditional WordPress provides out of the box.

\n\n\n\n

In recruiting potential headless customers, Gatsby emphasized the lower hosting costs of its stack. Gatsby Cloud is free for small, personal sites but limits users to 100 Real-Time Edits/month. In fact, all of the commercial plans have upper limits on the number of editors and how many times users can perform real-time edits.

\n\n\n\n

Decoupled architecture still falls squarely within the realm of developers. Gatsby’s Cloud product is one way that developers who choose Gatsby for the frontend can make their sites more user-friendly for editorial teams. Developers who are interested in exploring the new integration can get a quick start by checking out Gatsby’s official WordPress starter.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 09 Feb 2021 23:52:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Embed Any URL Into WordPress With the Bookmark Card Block\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111798\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/embed-any-url-into-wordpress-with-the-bookmark-card-block?utm_source=rss&utm_medium=rss&utm_campaign=embed-any-url-into-wordpress-with-the-bookmark-card-block\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4117:\"

George Mamadashvili’s Bookmark Card block is the sort of simple plugin that is easy to overlook. It is one of those plugins that suffers from the lack of block discoverability in WordPress at the moment. Like many other one-off blocks, you don’t know you need it until you need it.

\n\n\n\n

The plugin is essentially an embed block, but it is not specific to one website or service like Twitter and YouTube. Instead, it allows users to add a “card” for any URL in their content.

\n\n\n\n

Mamadashvili has previously worked as a developer on several blocks for the Sorta Brilliant brand, which sported some of my favorite block-related plugins, such as Emoji Conbini. Unfortunately, those plugins are no longer in the WordPress directory at the request of the owner, Nick Hamze.

\n\n\n\n

However, Mamadashvili has continued building separately. Yesterday, he launched Toggles, a block for creating FAQs, hiding spoilers, and adding simple accordion elements..

\n\n\n\n

I have had his Bookmark Card block literally bookmarked for a few months, just now finally giving it the overdue trial run that it deserves.

\n\n\n\n

The name of the plugin brings me back a few years. There was once a time when bookmarks were a common feature of the web. Entire sites were dedicated to managing them, and some people created their own bookmark pages on their WordPress sites. Some were mere blogrolls. Others were more advanced galleries with images. Even the “link” post format archive in WordPress has served as a bookmark system.

\n\n\n\n

The idea of bookmarks is about preserving pieces of the web that interests us. So, I opened my dusty old recipe folder in Chrome and started putting together a recipes page for fun, hoping for some inspiration in my culinary pursuits.

\n\n\n\nHorizontal-style Bookmark Card blocks.\n\n\n\n

I enjoy this recipe page a lot more than the plain links hidden away in my Google bookmarks. I suppose I could get even more creative and break everything down by category on different pages.

\n\n\n\n

The Bookmark Card block currently ships with two styles. The horizontal style, shown above, places the image to the right of the card content. The default style, shown below, adds the image at the top. Users can also try combinations with other blocks for unique looks, such as adding cards to the Columns block.

\n\n\n\nColumns of Bookmark Card blocks.\n\n\n\n

The plugin can be useful in many contexts. Users can add URLs that are not supported via the regular embed blocks. They may also enjoy the shared card style for all of their embedded links.

\n\n\n\n

Future Ideas for the Plugin

\n\n\n\n

The simplicity of Bookmark Card is part of its allure. However, it is also overly simple in some respects. The only option it provides is the choice between a vertical and horizontal card style. This limits its potential, especially if the default design does not match the user’s theme.

\n\n\n\n

The plugin does not need a plethora of options. However, it could use some basics. Text and background colors are a must. Base typography options, such as selecting the font size, would be nice-to-have features. Integration with the Gutenberg plugin’s newer border-radius component would work well with this type of block. Like all blocks I test or use, I also ask that plugin developers add support for wide and full-width alignments.

\n\n\n\n

A few additional styles or layout options would help. For example, a horizontal style that moves the image to the left of the card content would be a good option.

\n\n\n\n

The plugin, which is currently at version 1.0, is a good starting point. However, it could be much better with just a handful of extras in future updates.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 09 Feb 2021 22:50:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"WordPress.org blog: WordPress 5.7 Beta 2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9688\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5026:\"

WordPress 5.7 Beta 2 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with it.

\n\n\n\n

You can test the WordPress 5.7 Beta 2 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just four weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

Some Highlights

\n\n\n\n

Since Beta 1, 38 bugs have been fixed. Here is a summary of some of the included changes:

\n\n\n\n
  • Italicized text has been removed to improve accessibility and readability (#47326)
  • Pause any playing media when closing the the media modal (#48562)
  • Add Content-Security-Policy script loaders (#39941)
  • Several fixes for the Twenty Twenty-One theme (#50454#52432#52433#52473#52477, #52374)
  • Gutenberg editor support for custom spacing (#51760)
  • Resolved Menu UI issues on medium-large screen sizes (#49576)
  • Admin UI color palette: ensure that all interactive elements have an appropriate contrast ratio (#52402)
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 157 tickets in WordPress 5.7, including 68 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @audrasjb, @hellofromtonya, @francina and @desrosj for your peer revisions!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 09 Feb 2021 20:42:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: WP Engine Invests in Headless WordPress, Hires WPGraphQL Maintainer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111362\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/wp-engine-invests-in-headless-wordpress-hires-wpgraphql-maintainer?utm_source=rss&utm_medium=rss&utm_campaign=wp-engine-invests-in-headless-wordpress-hires-wpgraphql-maintainer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4404:\"

WP Engine is deepening its investment in headless WordPress with the creation of a new team dedicated to furthering the technology developers rely on when opting for this architecture. The company has hired WPGraphQL creator and maintainer Jason Bahl as part of this new team and will be investing in more engineers and other roles to support decoupled setups.

\n\n\n\n

For the past 18 months, Gatsby has funded Bahl’s time on WPGraphQL’s maintenance and development. During that time, the project had 53 releases, went from ~15,000 installs reported on Packagist.org to more than 85,000, and launched the plugin on WordPress.org with more than 8,000 installs active today and a 5-star average rating. The community around the project is also growing and has contributed more than 30 plugins to the library of WPGraphQL extensions.

\n\n\n\n

“Gatsby’s investment in WPGraphQL signaled that it wasn’t just a hobby project, but was solving real problems for real users, and users should have confidence using it in their projects,” Bahl said.

\n\n\n\n

After Gatsby started transitioning Bahl to work more on other Gatsby integrations, such as Contentful and Shopify, it translated into less time to work on WordPress and WPGraphQL. This prompted him to seek out another employer where he could prioritize working on headless WordPress.

\n\n\n\n

“I feel right now is a unique time in history where more investment in WordPress as a headless CMS can change the future of WordPress,” Bahl said. “I believe WordPress is now more respected as a viable option for a headless CMS and that with the momentum of WPGraphQL, technologies like Gatsby, NextJS, and others, I need to spend more time focusing on WPGraphQL and headless WordPress, and not less time.”

\n\n\n\n

Bahl found WP Engine at the right time and will be focusing on maintaining WPGraphQL and working on wider headless WordPress initiatives.

\n\n\n\n

“We’re going to be investing in headless WordPress, both in expanding our existing business as well as giving back to the community, as we have done for the past eleven years,” WP Engine founder and CTO Jason Cohen said.

\n\n\n\n

“We’re already seeing some customers moving to headless.  While we don’t see the majority of WordPress sites doing that anytime soon, we do want to invest in those who are.”

\n\n\n\n

In the meantime, WP Engine is creating a Headless WordPress Framework that is in the early stages of development. The framework uses WPGraphQL and provides a plugin, a set of npm packages, and guides for creating headless WordPress sites using Next.js.

\n\n\n\n

“GraphQL as a protocol offers a lot of advantages over REST, which is why it is being used so much, even by players outside of WordPress, like Gatsby,” Cohen said. “GraphQL includes type-safe schemas, is more discoverable, is easier to federate, and because it allows the clients so much flexibility in what data it wants (and does not want), it often results in fewer back-and-forth calls between client and server, while reducing the data being transferred to only that which the client actually needs. Because of the advantages of GraphQL, we believe a mature GraphQL API for WordPress will empower developers and site owners to move faster and with more confidence when they choose to go headless with WordPress.”

\n\n\n\n

Bahl said WP Engine’s investment in headless WordPress isn’t limited to him continuing work on WPGraphQL. The company plans to hire more engineers for projects aimed at reducing the friction that developers and businesses experience when using WordPress as a headless CMS.

\n\n\n\n

“I believe that WP Engine’s investment in this space will allow WPGraphQL to grow and mature faster than ever before, as I will be part of a larger team working to make WordPress the best it can be,” Bahl said.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 08 Feb 2021 23:22:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Rough Pixels Releases Empt Lite, a Block-Supported Freemium WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111721\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:213:\"https://wptavern.com/rough-pixels-releases-empt-lite-a-block-supported-freemium-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=rough-pixels-releases-empt-lite-a-block-supported-freemium-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6419:\"Single post view.\n\n\n\n

Empt Lite, the latest theme by Rough Pixels, landed in the WordPress theme directory today. Like most of the company’s prior work, the design is on par with the best free themes currently available.

\n\n\n\n

I have come to disregard that icky feeling whenever I see “Lite” attached to a theme name, at least when it falls under the Rough Pixels brand. The company does not deal in the stripped-down lite themes I wrote about a couple of weeks ago. Empt Lite is one of those rare themes that does not downgrade the experience with the free version. Most additional features in the pro version seem to be value-adds for users who need something extra. There is almost an honesty to it. Users can get a feel for the theme quality before deciding to hand over money for the commercial version.

\n\n\n\n

Some pro features probably do not make sense as an upsell in the long run. WordPress’s upcoming Full Site Editing (FSE) could make them obsolete. For example, an option for customizing archive titles will be easy to accomplish in the site editor. An “about me” widget will not be a great upsell a year from now. However, custom patterns for an “about me” section might make more sense.

\n\n\n\n

This is assuming the theme developer goes down the block-based theme path in the months to come. Looking at theme releases in 2021 needs to be done with an eye toward how they might function in an FSE world. This includes what freemium-based theme companies are upselling. Some will likely need to change tactics in time.

\n\n\n\n

The one missing feature that I would like to see Rough Pixels include in this theme and others is custom block patterns. They are already covering all of their bases with block editor styles. Now that patterns have been in WordPress since version 5.5, it is time to keep building on the work already in place. This is also an opportunity to transition toward selling design-based upgrades. Put together some custom pattern packages and see what type of feedback customers provide.

\n\n\n\n

Theme Features

\n\n\n\n

In essence, Empt Lite is mostly a standard blogging theme. Where it shines is its support of the block editor.

\n\n\n\nWide-aligned Cover block.\n\n\n\n

One of the surest signs of a theme author doing their due diligence with block styles is to test a full-aligned Cover block with text afterward. If the text butts against the Cover, the theme probably has numerous other issues. If there is spacing between the two, the theme author likely took the time to test almost all WordPress blocks in various scenarios. I promise you this test works 90% of the time. Empt Lite passed this test and my entire block-testing suite with ease.

\n\n\n\n

The feature that immediately caught my eye was the gallery-style blog layout. Rather than the typical top-aligned or masonry-type grids, the theme employs an offset style reminiscent of the Twenty Twenty-One theme’s image and gallery patterns. The effect is achieved by using varying featured image orientations, which the theme aligns to the middle. It is a break from the monotony of typical layouts.

\n\n\n\nOffset, gallery-style layout.\n\n\n\n

This gallery style does require that every post have a featured image. Posts without them simply disappear from the blog and archive pages, but not completely. These posts leave empty gaps, throwing off the layout. Their titles appear when hovering over seemingly-random spots on the page. There is also an empty <figure> tag in the source code. These are obviously bugs. If the theme author wants to support posts without featured images, the easiest solution would be to add a fallback.

\n\n\n\n

Users who love to customize their theme and make it their own will find enough theme options to whet their appetites. Whether it is colors and typography or post meta and the nine sidebars, the theme has settings to cover it. Outside of the gallery blog layout, none of the customizer options seemed groundbreaking.

\n\n\n\n

If anything, I look forward to the day when theme authors do not have to build all of these options and relegate them to the site editor. Rough Pixels and others put so much custom code behind the customizer that it feels like a waste of development hours in the long term. FSE cannot get here soon enough.

\n\n\n\n

The theme has a few noticeable issues, but they are relatively trivial.

\n\n\n\n

The mouse cursor is set to “pointer” when hovering a post featured image, even when that image is not linked. Yes, I unsuccessfully attempted to click a featured image multiple times, wondering why it was doing nothing.

\n\n\n\n

The wide-layout for single posts provides plenty of breathing room for custom layouts. However, the default font-size, set to 17px, is too small for comfortable long-form reading. There is an option to customize the size, but it applies to the text across the entire site and not just the post content on single views. Making it larger creates the opposite problem on non-single pages. When a project is billed as a blog theme, words-per-line matter. Nailing the typography is a must, even when it is on an alternative layout option. Outside of this one case, the theme gets the defaults right.

\n\n\n\n

The default quote style can make the text tough to read. The quote icon in the background bleeds too much into the foreground. I love the style; the color just needs to be dialed back while letting the text take center stage. The theme provides an option for changing the blockquote icon’s color. I suggest tinkering with it.

\n\n\n\nBlockquote style.\n\n\n\n

Overall, this is one of the better themes to land in the WordPress theme directory in the past few months. Recreating the theme’s demo requires almost no fuss. The typography is on-point for a blogging theme, and it works well with the block editor.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 08 Feb 2021 22:47:26 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Matt: Parse.ly & Automattic\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=53692\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:42:\"https://ma.tt/2021/02/parse-ly-automattic/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2030:\"

Excited to welcome Parse.ly to the Automattic family, in an acquisition that’s closing today. They’ll be joining our enterprise group, WPVIP. The deal has been nicely covered in the Wall Street Journal and Axios. As a bonus, here’s Parse.ly co-founder Andrew Montalenti’s first comment on this blog, in 2012.

\n\n\n\n

Great article, Matt. I wrote about this on my blog — Fully Distributed Teams: Are They Viable?

http://www.pixelmonkey.org/2012/05/14/distributed-teams

In it, I drew the distinction between “horizontally scaled” teams, in which physical offices are connected to remote workers via satellite (home or commercial) offices, and “fully distributed” teams where, as you said, “the creative center and soul of the organization on the internet, and not in an office.”

At Parse.ly, we’re only a couple years old but have been operating on the distributed team model, with ~13 fully distributed employees, and it’s working well. Always glad to hear stories about how Automattic has scaled it to 10X our size.

And, likewise, we blow some of our office space savings on camaraderie-building retreats; our most recent one was in New York, see [here] and [here.]

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 08 Feb 2021 17:58:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:131:\"WPTavern: Gutenberg 9.9 Adds Color Options for Social Icons, Includes Rounded Borders for Images, and Changes the Theme JSON Format\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111628\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:303:\"https://wptavern.com/gutenberg-9-9-adds-color-options-for-social-icons-includes-rounded-borders-for-images-and-changes-the-theme-json-format?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-9-9-adds-color-options-for-social-icons-includes-rounded-borders-for-images-and-changes-the-theme-json-format\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7460:\"

Version 9.9 of the Gutenberg plugin landed earlier today. While it includes several minor UI improvements, the biggest user-facing change is the inclusion of icon and background color options for the Social Links block. Theme authors can now add support for rounded image borders. They are also faced with a breaking change to their theme JSON files.

\n\n\n\n

WordPress 5.7 Beta 1 was released earlier this week. The final 5.7 release will include features from Gutenberg 9.9 back down to 9.3. Only bug fixes from upcoming plugin updates should be ported into WordPress during the rest of the development cycle.

\n\n\n\n

The development team squashed over 30 bugs in the latest plugin update. It also includes several enhancements and API updates. Plugin developers can now override the block category when registering variations, which should help with discoverability.

\n\n\n\n

Full Site Editing and other experimental work continued as usual. One item that theme authors should keep an eye on is the initial groundwork for additional border options. The experimental feature for adding border colors, styles, and widths for blocks has long been on the wish list of many. I expect that the team will start slowly rolling out block support and a UI in coming versions.

\n\n\n\n

Color Options for Social Links

\n\n\n\nIcon and background colors for Social Links.\n\n\n\n

Users can now change the icon color and background in the Social Links block. This change allows the user to customize the colors for all icons in the links list. The “logos only” block style does not support a background color.

\n\n\n\n

The missing piece is the ability to set individual icon colors and their hover colors. One of the use cases in theme design is to provide a solid-colored group of icons that change to the brand colors on hover or focus. The only way to do this from the user’s end is via individual icon color options. Even the ability to set the icon hover color for the entire block is still unavailable.

\n\n\n\n

Branding guidelines were mentioned as a concern with the current color options, but that concern is outside the scope of WordPress’s responsibility (see longer analysis regarding logos). Many brands also have alternate colors they allow, which are not possible to use without icon-specific colors.

\n\n\n\n

Setting the background and text color for all icons at once is a step in the right direction, but the block editor is still not matching what theme authors are doing in traditional theme design. These missing features are blockers for the eventual adoption of Full Site Editing.

\n\n\n\n

Rounded Border Support for Themes

\n\n\n\nBorder radius setting for the Image block.\n\n\n\n

Theme authors can now opt into border-radius support for images. Support comes in two forms. One is a setting to allow end-users to customize the border-radius via the block options sidebar. The second is setting a default border-radius value for all images.

\n\n\n\n

The Gutenberg team first added border-radius support to the Group block in version 9.8. Currently, only the Group and Image blocks support the feature.

\n\n\n\n

The following theme JSON code will add settings and styles support. Note the new format change, which is covered in the next section.

\n\n\n\n
{\n    \"settings\": {\n        \"core/image\": {\n            \"border\": {\n                \"customRadius\": true\n            }\n        }\n    },\n    \"styles\": {\n        \"core/image\": {\n            \"border\" : {\n                \"radius\": \"10px\"\n            }\n        }\n    }\n}
\n\n\n\n

New Theme JSON File Format

\n\n\n\n

Gutenberg 9.9 introduces two breaking changes to the experimental-theme.json file, which will eventually be renamed to theme.json once it is out of the experimental stage. This file allows theme authors to configure custom styles and settings for the block system. Any themes currently using the pre-9.9 format will need to be updated.

\n\n\n\n

The first change makes settings and styles top-level keys in the file. The second change renames and splits the global key to defaults and root. defaults deal with default values and styles while root handles the site root block.

\n\n\n\n

Ari Stathopoulos wrote a tutorial for theme authors to update their themes on the Make Themes blog.

\n\n\n\n

“The rationale for this change is that the use cases for theme.json have grown beyond initially considered, and the vision is now being able to absorb a lot of things that themes declare at the moment via other means,” wrote Andrés Maneiro, the creator of both tickets. “Some examples are registering (and translate?) custom templates, declare theme metadata that is currently stored in the stylesheet, declare stylesheet paths, etc.”

\n\n\n\n

He also shared a vision of what the format might look like:

\n\n\n\n
{\n    \"name\": \"TwentyTwentyOne\",\n    \"description\": \"...\",\n    \"customTemplates\": ...,\n    \"textDomain\": ...,\n    \"version\": 1,\n    \"settings\": {\n            \"global\": { ... },\n            \"core/paragraph\": { ... }\n    },\n    \"styles\": {\n            \"global\": { ... },\n            \"core/paragraph\": { ... }\n    }\n}
\n\n\n\n

For users, this data might not make much sense. However, any theme author should be able to recognize the significance of potentially moving metadata that is currently stored in their theme’s style.css through a non-standard system that WordPress has used for ages. Eventually moving that data to a standard format, JSON, would give WordPress flexibility to shed some of its legacy baggage.

\n\n\n\n

WordPress themes currently have a hard requirement of including a style.css file. We could well be on our way to building WordPress themes that have no need for a stylesheet at all. The future of FSE is likely one in which CSS is all handled through the Global Styles system with the theme’s default values set via the theme.json file. If a theme has no styles, it does not make sense to hold onto the style.css file.

\n\n\n\n

However, this change is not merely limited to that possibility. The new format is cleaner and better prepared for future additions.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 05 Feb 2021 21:53:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"WPTavern: Newspack Publishes Showcase with 60 Newsrooms Launched\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111568\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:173:\"https://wptavern.com/newspack-publishes-showcase-with-60-newsrooms-launched?utm_source=rss&utm_medium=rss&utm_campaign=newspack-publishes-showcase-with-60-newsrooms-launched\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4464:\"

Newspack, a project funded by the Google News initiative and WordPress.com, has published a showcase of 60 news sites running on the platform. WordPress.com announced its plans to build the Newspack CMS two years ago and successfully signed on more than 50 sites in the first year. The cloud-based platform is open source and highly customized to generate revenue for small to medium-sized publications.

\n\n\n\n

Early adopters include the Austin Weekly News, Mississippi Today, Hong Kong Free Press, Oklahoma Watch, Bangor Daily NewsThe Oaklandside, and many other watchdog publications serving their communities with vital local news coverage.

\n\n\n\n

The showcase was created using the Raindrop bookmark manager, which allows viewers to search for a specific site and see all the various homepages at a glance. The diversity of the publications is striking, but clicking through to their websites it’s clear that most of them share an intimate connection with their communities that might otherwise have evaporated in the post-print news era.

\n\n\n\n
\n\n\n\n

Newspack stands out as an affordable, open source alternative to proprietary systems. Publishers generally pay $500-$2,000/month using a sliding scale based on their annual revenue. The tools they are given are open and designed to help create economically sustainable journalism. It’s not surprising that a community has sprung up around the product, as small publishers share many of the same issues. A dedicated Slack workspace. facilitates conversation and collaboration for more than 150 editors, designers, product and business people who are all using the same building blocks to run their publications.

\n\n\n\n

In 2020, thirteen Newspack publications were awarded a total of more than $1 million in grants from the Facebook Journalism Program’s relief effort for local news due to Covid-19. Publishing online at a low cost on WordPress has helped many of these publications weather the pandemic, instead of being forced to consolidate or shutter.

\n\n\n\n

In May, 2020, analysts from News Revenue Hub published a study examining how Newspack-powered newsrooms are interacting with WordPress. A few key findings showed that Newspack users may require more assistance in managing their sites, which leverage the block editor and come with more than 50 pre-configured plugins:

\n\n\n\n

The role of Newspack in reducing or replacing the need for website management-related technical resources is unclear, and depends greatly on an individual newsroom’s technical knowledge and resources.

Potential improvements going forward should focus on providing deeper, more standardized education and documentation to broad groups of users.

\n\n\n\n

The report concluded that “Newspack has established itself as a valuable tool for newsrooms, as well as a valuable method for building sites collaboratively,” but warns that the project may face challenges in scaling the hands-on support that pilot newsrooms received in the early stages. More revenue-generating features are still being developed but overall participating newsrooms had a high rate of satisfaction with the platform.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 05 Feb 2021 06:38:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:99:\"WPTavern: Call for Feedback on Theme Review Action, a New Automated WordPress Theme Testing Project\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111325\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:241:\"https://wptavern.com/call-for-feedback-on-theme-review-action-a-new-automated-wordpress-theme-testing-project?utm_source=rss&utm_medium=rss&utm_campaign=call-for-feedback-on-theme-review-action-a-new-automated-wordpress-theme-testing-project\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5176:\"GitHub output of Theme Review Action.\n\n\n\n

Automation. It is one of those dreams in the minds of many reviewers from the Themes Team. If there was a tool to take care of 90% of the issues, the team could focus on the 10% not easily found by automated scripts.

\n\n\n\n

Enter the Theme Review Action project. Steve Dufresne, a WordPress Meta team contributor, put out a call for testing and feedback of the new project on Monday.

\n\n\n\n

“If we could combine some of the existing code analysis tools, automate away some of the manual testing and open them up to more development workflows, could we improve theme quality, alleviate pressure on manual testing, and speed up the theme review process?” asked Dufresne.

\n\n\n\n

The project currently runs several test suites, including the current Theme Check plugin. Theme authors can run the texts by running the NPX command in their theme folder, adding it as an action on GitHub, or cloning and running it locally. Running via NPX is not currently supported on Windows.

\n\n\n\n

Right now, theme authors are needed. Regardless of whether you are building themes for the directory, clients, third-party marketplaces, or a theme shop, this is an opportunity to give back to WordPress. It is also an opportunity to improve the tools that you could benefit from as a theme developer in the long term. Automated theme tests help the entire theme ecosystem.

\n\n\n\n

“Theme authors need to be open to this and understand that it is not all about requirements,” said Carolina Nymark, a Themes Team representative. “It is about improving theme quality.”

\n\n\n\n

The project was, in part, informed by a Themes Team proposal in early 2020. Denis Žoljom identified three problems the team was fighting against:

\n\n\n\n
  • People don’t like to read requirements or handbooks.
  • Some of the issues that are popping up are repetitive and could be caught automatically.
  • Reviewing themes in Trac is really cumbersome.
\n\n\n\n

The proposal’s focus was on moving reviews to GitHub, focusing on the third point. However, the Theme Review Action project could be the start of handling one or more issues.

\n\n\n\n

The obvious solution is that the project can be automated. However, because the Theme Review Action project can be set as a GitHub Action, it leaves room for the team’s GitHub review proposal.

\n\n\n\n

“Two things I mentioned to Steve — and these are my opinions –, is that we need checks that run on theme upload and on live themes, and we need a long-term solution,” said Nymark. “There have been attempts to automate testing before that have not been followed through, and without a plan for how the tool will be used, I am worried about spending time on it.”

\n\n\n\n

The team had hoped that the Theme Sniffer project would lead to more automation at one point. It is hard to get hopes up after previous goals never came to fruition.

\n\n\n\n

“I too have a similar concern where the project might not get enough adoption to make it to .ORG checking, and that is one of the reasons (other than just being super busy) that I haven’t been able to prioritize looking at [Theme Review Action],” said Themes Team rep William Patton.

\n\n\n\n

While the team and some theme authors still use the Theme Sniffer, the UI leaves a lot to be desired. Nymark pointed out that it was hard for theme authors to distinguish between the baseline requirements and recommendations.

\n\n\n\n

“To display messages from automated tools that are not strictly requirements is very difficult to get right,” she said. “For example, if a tool started reporting CSS linting errors for the WordPress CSS coding standards, many people would find that too opinionated and limiting.”

\n\n\n\n

Theme authors, the group that reaps the most financial and reputational benefits from the theme directory, have often been reluctant to chip in. Few companies spare an employee to perform reviews or work on tools that developers and the team need. Calls for testing, feedback, and discussion often go unanswered, leaving a select few to do the lion’s share of the work. For this project to be successful and not feel like something foisted upon them down the road, theme developers need to be in the mix.

\n\n\n\n

In the first episode of the WP Briefing podcast, WordPress Executive Director Josepha Haden Chomphosy talked about focusing on automation as one of this year’s goals. If there is one team that could use such tools, it would be the Themes Team.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 04 Feb 2021 22:51:42 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"WPTavern: New Report Estimates WordPress’ Market Share of US Higher Education Institution Websites at 40.8%\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111416\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:255:\"https://wptavern.com/new-report-estimates-wordpress-market-share-of-us-higher-education-institution-websites-at-40-8?utm_source=rss&utm_medium=rss&utm_campaign=new-report-estimates-wordpress-market-share-of-us-higher-education-institution-websites-at-40-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2613:\"

A new report from eQAfy, a company that collects and analyzes data about higher education websites, has benchmarked which content management systems US institutions are using. The report is a snapshot of data from December 2020, sourced from the National Center for Education Statistics IPEDS database. After scanning a list of 4,000 active institutions, EQAfy’s headless browser was able to detect the CMS for 3,359 homepages (83.8%).

\n\n\n\n

A market leading group of 12 content management systems made up 90% of the homepages eQAfy detected, including four open source solutions and eight proprietary solutions. WordPress captures 40.8% of the market, followed by Drupal at 19.1%, as measured across all institution types (public, private for profit, and private non-profit), levels (2-year and 4-year), and sizes.

\n\n\n\n
\n\n\n\n

WordPress’ estimated market share for public institutions came in at 27%, and is much higher in the private for-profit institutions category at 55%.

\n\n\n\n

Looking at 2-year public higher education institutions by student population, WordPress falls to #3 at just 18.3%. Drupal leads the pack in that category with 29.2%, and proprietary CMS’s take up the rest of the market. WordPress does much better in the category of 4-year private for-profit higher education institutions, capturing a staggering 75% of the market.

\n\n\n\n

When examining CMS suppliers for institutions by size, WordPress is the overall market leader but does far better in the smallest institutional size categories, with waning dominance in the large to very large categories.

\n\n\n\n
\n\n\n\n

The report has more interesting data comparisons across different categories if you want to dig deeper. It’s important to note that eQAfy only collected the main websites for these institutions, which may not be representative of the CMS that powers the schools’ ancillary websites. They are often created using a combination of platforms. This report covers only which CMS the schools preferred to use for the face of their institutions.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 04 Feb 2021 04:48:39 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"WPTavern: FSE and WordPress Themes: What Does the MVP Look Like?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111262\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/fse-and-wordpress-themes-what-does-the-mvp-look-like?utm_source=rss&utm_medium=rss&utm_campaign=fse-and-wordpress-themes-what-does-the-mvp-look-like\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8894:\"

Josepha Haden Chomphosy, the Executive Director of WordPress, posted a follow-up to her outline of the upcoming year. Questions mounted about what a minimum viable product (MVP) looked like for Full Site Editing (FSE), which is expected to be ready in the Gutenberg plugin in April. The core team is also shooting for a June launch of FSE in WordPress when it ships WordPress 5.8.

\n\n\n\n

These seem like lofty goals, but members of the WordPress development and business community were left asking, “What is an MVP for FSE?” This is not a new question. Whether it is the swift pace of development, a communication breakdown, or so much of the project being hidden behind layer upon layer of GitHub issues, it can be hard to follow. There is no big webpage that spells out each step in minute detail of where the project is going. Information can sometimes feel scattered. This can give pause to third-party developers and business owners who need to know what to expect to update their products.

\n\n\n\n

Joost de Valk, the CPO of Yoast, voiced his frustration with the process in the comments. We later discussed this in more detail.

\n\n\n\n

“I think FSE will change what a theme is, and, if it gets executed properly, will make it far easier to build a theme, as themes will be much smaller,” he said. “That brings the burden onto the community to come up with reliable methods of styling though, and conventions on class names or similar, to make styling work everywhere. I currently don’t understand what is even considered as MVP for Full Site Editing, nor do I see any discussions about how it’ll work with themes not purpose built for it, and that worries me.”

\n\n\n\n

He shares some of the same concerns as others in the community who feel like there is no process in place for an MVP.

\n\n\n\n

“And there is no such thing,” he said. “Vision without execution is just hallucination.”

\n\n\n\n

Chomphosy said that she was aware of the interconnectedness. “I also see that the information we have published isn’t in a tidy and followable post that would help people make good decisions on behalf of 39% of the web,” she said.

\n\n\n\n

She pointed to a ticket that lists six (now seven) milestones. Each of those milestones, when taken together, represent where FSE needs to be for an MVP.

\n\n\n\n

“Together they outline an architecture that allows the expression of a full theme using blocks and an editor capable of customizing that theme,” she wrote. “The MVP should make it possible to build a version of the Twenty Twenty-One theme, using only blocks, without any coding knowledge.

\n\n\n\n

The following is a breakdown of the milestones that need to reach completion before we see the first version of FSE land in WordPress:

\n\n\n\n

Milestone 1: Infrastructure and UI

\n\n\n\n

Perhaps the most crucial part of FSE is a workable site editor. Merging the WordPress templating system into a cohesive UI is the foundation of the project. The underlying infrastructure handles how templates and template parts work. At this point, this foundation is in a reliable spot. It is all the features that build upon it that need more work. This milestone also includes getting the site-editing interface in place and handling multi-entity saving.

\n\n\n\n

The final leg of the milestone allows users to edit templates from within the post editor, effectively switching between content and design editing. The FSE Outreach Program recently tested this feature to garner feedback after Gutenberg 9.6.

\n\n\n\n

Milestone 2: Browsing

\n\n\n\n

This milestone covers all of the work for navigating the UI of the site editor. There are many moving parts, such as switching between pages, templates, template parts, global styles, and more. Users must know which element they are working on.

\n\n\n\n

This is the only milestone marked as completed. However, there is an open ticket for exploring the idea of a “browsing” mode alongside the edit and select modes.

\n\n\n\n

Milestone 3: Styling

\n\n\n\n

For the most part, this milestone centers on the upcoming Global Styles system. The system creates a hierarchy of how styles are applied to blocks from theme defaults to global user modifications, down to per-block style options.

\n\n\n\n

While much of the work is complete for an MVP, there are dozens of feature tickets in the backlog. This is also an area where the block system is years behind third-party page builders. Expect to see long-term feature additions based on post-launch feedback.

\n\n\n\n

Milestone 4: Theme Blocks

\n\n\n\n

Theme authors should keep a close eye on this ticket. The only way that block-based themes become a reality for most theme developers is if all template tags have a corresponding block in the site editor. Or, at least if the most-used template tags do. Some of these functions are no longer applicable in the block editor. Theme developers should make sure they have the blocks they need to recreate anything they are building today.

\n\n\n\n

Admittedly, I am sad to see that blocks for Bookmarks/Links are unlikely to be moving forward. While the feature is deprecated, I am still nostalgic about the good ol’ blogroll days. Maybe this would be best left a plugin. A revival of the Link Manager plugin could be in order.

\n\n\n\n

Milestone 5: Query Block

\n\n\n\n

The Query block and its corresponding Loop block are, in some ways, the most essential pieces of Full Site Editing. They handle what posts are loaded and how they are displayed. The feature is one of the more complex puzzles to solve. The Gutenberg development team has continued iterating on it for months, and it is now at a good baseline. However, it has miles to go before it can seriously handle all the things that theme authors need to do with it.

\n\n\n\n

Right now, the Query block only handles a handful of options for customizing the query. The team needs to determine what controls should be available in the sidebar for end-users and integrate the blocks with patterns for different types of post-list displays.

\n\n\n\n

Milestone 6: Navigation Block

\n\n\n\n

Aside from the Query block, Navigation is the only other block that requires its own milestone. Navigation menu issues have plagued the WordPress project for well over a decade. It is one of the hardest things to get right. While nav menus in WordPress today are generally easy to work with, their design is not customizable by the end-user. The output is wholly at the theme author’s discretion. Catering to the array of possible menu designs theme authors might want and making it customizable for the end-user is likely one of the toughest problems for the Gutenberg project.

\n\n\n\n

There are at least a couple of dozen sub-tickets that need contributors. Even then, it could be several versions later before the Navigation block is ready for the more complex patterns used in some themes today.

\n\n\n\n

Milestone 7: Gradual Adoption

\n\n\n\n

After the first six milestones representing the MVP are completed, WordPress needs a way to allow end-users and theme authors to gradually adopt FSE. Primarily, this would be a mix of block-based templates and traditional PHP-based templates. Developers should be allowed to update their themes without changing them wholesale, potentially leaving segments of their user base behind.

\n\n\n\n

Block-based widgets and navigation screens also fall under this milestone. Both features were punted to future releases after failing to land in 2020. However, these will be stepping stones for users who are not quite ready to switch to FSE or are unable to because of their theme.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 22:55:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: WordPress 5.6.1 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9574\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/wordpress-5-6-1-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8265:\"

WordPress 5.6.1 is now available!

\n\n\n\n

This maintenance release features 20 bug fixes as well as 7 issues fixed for the block editor. These bugs affect WordPress version 5.6, so you’ll want to upgrade.

\n\n\n\n

You can download WordPress 5.6.1 directly, or visit the Dashboard → Updates screen and click Update Now. If your sites support automatic background updates, they’ve already started the update process.

\n\n\n\n

WordPress 5.6.1 is a short-cycle maintenance release. The next major release will be version 5.7.

\n\n\n\n

To see a full list of changes, you can browse the list on Trac, read the 5.6.1 RC1 post, or visit the 5.6.1 documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.6.1 release was led by @audrasjb, @desrosj, @sergeybiryukov and @whyisjake. Thanks to @metalandcoffee and @hellofromtonya for running bug scrubs, @planningwrite and @davidbaumwald for their help on the release post.

\n\n\n\n

Props to everyone who helped make WordPress 5.6.1 happen:

\n\n\n\n

aaribaud, Aaron D. Campbell, Ahmed Saeed, Andrew Ozz, Anthony Burchell, archon810, Ari Stathopoulos, Ayesh Karunaratne, basscan, carloscastilloadhoc, Carolina Nymark, celendesign, Christopher Finke, Copons, Dan Farrow, Daniel Richards, david.binda, Denis Yanchevskiy, Dilip Bheda, Dominik Schilling, Ebonie Butler, Felix Arntz, Florian TIAR, Garrett Hyder, gKibria, Greg Ziółkowski, Helen Hou-Sandi, Ian Dunn, ifnoob, Isabel Brison, Ismail El Korchi, Jake Spurlock, James Huff, Jason LeMahieu (MadtownLems), Jb Audras, John Blackbourn, Jonathan Desrosiers, Jonathan Stegall, Jorge Costa, Josepha, Justin Ahinon, Kai Hao, Kelly Choyce-Dwan, Kjell Reigstad, Konstantinos Xenos, litemotiv, lucasbustamante, Mahdi Akrami, majhajob, Manzur Ahammed, Marius L. J., Matt Wiebe, Maxime Pertici, Mel Choyce-Dwan, Michael Babker, Mukesh Panchal, NicolasKulka, Nik Tsekouras, oakesjosh, Peter Wilson, Prem Tiwari, Riad Benguella, Richard Tape, Robert Anderson, Rodrigo Primo, SeBsZ, Sergey Biryukov, Slava Abakumov, Stephen Bernhardt, t-p, Takashi Kitajima, Tanvirul Haque, thorlentz, Timothy Jacobs, Toni Viemerö, Tony A, Tonya Mork, transl8or, and Vlad T.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 21:30:51 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"Jb Audras\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"WPTavern: WordPress 5.7 Beta 1 Is Ready for Testing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111333\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:147:\"https://wptavern.com/wordpress-5-7-beta-1-is-ready-for-testing?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-5-7-beta-1-is-ready-for-testing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3105:\"

WordPress 5.7 Beta 1 was released this week on schedule and is ready for wider testing. This release will introduce 68 new features and enhancements, dozens of bug fixes, and versions 9.3 – 9.9 of the Gutenberg plugin.

\n\n\n\n

A few of the highlights expected in 5.7 include the following:

\n\n\n\n
  • Lazy-load iframes: When WordPress 5.4 added lazy loading for images, contributors discussed extending this to iframes as well. Now that the loading attribute on iframe tags has been added to the HTML standard, it will be supported in core in 5.7.
  • Streamlined migration from HTTP to HTTPS: WordPress can now detect if a user’s hosting environment supports HTTPS and enables a one-click update process, handling mixed content rewrites where possible.
  • Standardize colors used in WP-Admin CSS to a single palette: WordPress is implementing a CSS custom properties system that will make it easier to add custom color schemes.
  • Ongoing cleanup after update to jQuery 3.5.1
  • New Robots API: This new API allows developers to centrally manage the content of the robots meta tag injected into the page, and includes a setting to toggle whether search engines are allowed to display large media from the site. By default, a max-image-preview:large robots directive which will be injected into the robots meta tag based on the new setting.
\n\n\n\n

These features need testing, along with the host of updates rolling over from the Gutenberg plugin. The editor is getting the most visible enhancements in 5.7, with features like dragging blocks and block patterns from the inserter into the canvas, major improvements to the buttons block, new social icons, and much more.

\n\n\n\n

The official release is expected in just under five weeks on March 9, 2021. Testing is a critical part of the process for making WordPress better with each update. The easiest way to get in on that is to install the WordPress Beta Tester plugin (set to the Bleeding edge channel and the Beta/RC Only stream), or download and install the zip of the beta version.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 18:54:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"WordPress.org blog: The Month in WordPress: January 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9632\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/02/the-month-in-wordpress-january-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:11649:\"

For WordPress, 2021 started on a high note. Read on to learn about updates from last month. 

\n\n\n\n
\n\n\n\n

WordPress release updates

\n\n\n\n

WordPress project executive director — Josepha Haden (@chanthaboune) shared big picture goals for WordPress in 2021. Highlights include shipping  Full Site Editing  — first on the Gutenberg plugin in April 2021  and later in core (with WordPress 5.8), improved learning opportunities on learn.wordpress.org, and better tooling for contributors. As per the updated WordPress roadmap, WordPress version 5.7 is planned to launch in March 2021 and WordPress 5.8 in June 2021. Some related updates:

\n\n\n\n\n\n\n\n

Want to be involved in the next release? You can help build WordPress Core by following the Core team blog and joining the #core channel in the Making WordPress Slack group.

\n\n\n\n

Proposal to return to in-person WordPress events in safe locations

\n\n\n\n

The Community team is discussing an updated proposal to create a decision-making checklist for meetup organizers. The proposal is aimed at locations that have more effectively contained COVID-19 (such as New Zealand and Taiwan, for instance) so that local meetup groups in these areas can organize safe, in-person events. According to the proposal, in-person meetup organizers should review local/global health instructions based on resources and complete a checklist — which recommends whether to organize an event or not based on the organizer’s inputs and other factors. Compulsory safety precautions should be taken for any in-person meetup, and participants/organizers can share event feedback with WordCamp Central. The proposal is still being discussed, so if you have any thoughts, please share them in the comments. Please note: WordPress meetups and WordCamps are still online at this time and will continue to remain online until further notice.

\n\n\n\n

Want to get involved with the Community team? Follow the Community blog, or join them in the #community-events channel in the Making WordPress Slack group. To organize a local WordPress community event, visit the handbook page

\n\n\n\n

Gutenberg 9.7 and 9.8

\n\n\n\n

Contributor teams released Gutenberg Version 9.7 on January 6th and Version 9.8 on January 20th. Version 9.7 allows users to drag block patterns from the inserter right into a desired position within the editor. It also has a new block variations feature and several improvements to reusable blocks. Version 9.6 makes the spacer block semi-transparent, adds a variation icon to the block switcher, adds site editor content to an iframe, and stabilizes Full Site Editing (FSE) by removing the auto drafts feature.

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Making WordPress Slack group. You can find out more about the Gutenberg roadmap in the latest What’s next in Gutenberg blog post.

\n\n\n\n

Inviting Learn WordPress Contributors

\n\n\n\n

Contributor teams working on the Learn WordPress initiative are asking for new workshop presenters and discussion group facilitators. The Training Team is recruiting volunteers for the Learn WordPress handbook and has put up a call for testing for the slides plugin to identify a simplified way to present slides. The Polyglots Team has floated a proposal to translate Learn WordPress. The Meta Team is exploring the possibility of making Learn WordPress (and wordpress.org) COPPA-compliant to host workshops aimed at kids.

\n\n\n\n

Want to contribute to the Training team? Follow the Training team blog, or join them in the #training channel in the Make WordPress Slack. 

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 15:01:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:36:\"HeroPress: Discover Where You Belong\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3469\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:124:\"https://heropress.com/essays/discover-where-you-belong/#utm_source=rss&utm_medium=rss&utm_campaign=discover-where-you-belong\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7102:\"\"Pull

My path to WordPress is, like so many stories, a twisty road lined with both struggle and good fortune. And yet, when I reflect on what led me here, it simply comes down to the common threads that bind us together as a community: the desire to make meaningful connections, the ability to do amazing things together, and the very human comfort that comes with knowing that I belong here.

\n

It starts here

\n

Just before I made my way into this world, my parents immigrated from Taipei, Taiwan to San Diego, USA. Growing up, I held a level of pride in being first generation which warred against a long list of discomforts that, as a kid, I couldn’t fully comprehend. That unlike my school mates, I rarely saw my extended family. That my English didn’t sound like that of my Californian friends, nor did my Mandarin mirror my Taiwanese cousins’. That cultural norms at friends’ homes were diametric experiences from my home.

\n

I realize that this sounds like I had a challenging, confusing childhood, but I assure you that I had a good time growing up. My folks are loving and made sure I had opportunities whenever possible. I always have had wonderful friends who generously share their lives and love my quirks. And, I have a brother who, despite being far smarter than I will ever be, still puts up with my big sister act.

\n

My point is that, it was painfully clear to me where I couldn’t fit in. Like many third culture kids, my perplexing cultural foundation had a profound impact on my values, and created importance around the concept of belonging, something I still hold to this day, and which pushed me along my way to WordPress.

\n

The twisty road

\n

I was terrible at college. I had no sense of what I wanted to do with my life, and drifted from major to major until I found myself entirely broke and rudderless. It was 2010, and with minimal job experience and 45 credits short of a degree, I desperately applied for jobs, taking the first that offered me a full time position.

\n

It was a pivotal moment in my life. The job gave me purpose, and I actually felt like I was good at something for a change. I worked closely with my boss and mentor, a highly regarded commercial real estate advisor with a warm heart and penchant for dad jokes. What set him apart was his belief in community values: the importance of education, humility, empathy, good stewardship, qualities that made him a respected leader in many circles. Over the ensuing years, I would finish my degree. But the lessons that meant the most were learned by following my mentor’s example, and would later translate well to open source leadership.

\n

Meanwhile, I began volunteering with renewed passion: sorting clothes at homeless shelters, working on literacy programs, teaching English at the library, serving meals, maintaining trails, building homes. I fund raised and coordinated volunteer events. Eventually, I joined advisory boards and committees of a few nonprofits, and became enamored of the strategic, thoughtful work that came with these roles.

\nBuilding homes in Estelí, Nicaragua. One of my favorite volunteer memories!\n

Ideas around positive change and impact through community initiatives blossomed in my mind. Driven by strongly held values, I continued to help and was welcomed at every turn. I learned that it was people who could create spaces in which anyone, everyone could belong and add value by virtue of being a unique, enthusiastic human being. I wanted to create these spaces.

\n

Finding WordPress

\n

Now, it is a true story that I also found my way to WordPress through my partner, and that WordPress brought us together. We met through a mutual friend, and when I realized that he could build me a website, I asked him to do so for work. Arguably, one of my first experiences with WordPress could be described either as sharing what my site required with my developer, or innocently flirting with my future partner. The joke I like to tease him with is that I needed someone to maintain the site, so I married him.

\n

The other truth was that, after eight years of volunteering and lessons in leadership, my passion had turned to community building. I wanted a career in creating sustainable communities where people were openly welcomed, and members tangibly feel that they belong and experience joy in their participation.

\n

Simultaneously, working with my WordPress site also reinforced my sense of belonging to something bigger. Despite not having any technical background (y’all, my degree is in English), I was able to not just publish with WordPress, but have a functional site that worked incredibly well for my purposes. I saw WordPress as a way for anyone to have a voice online, and as a result, I was also drawn to the idea of creating these tools that non-developers, like myself, could use in an increasingly online world.

\n

By that point, my WordPress developer had become my fiancé, and he once again suggested a WordPress-based solution, this time for my career needs. Just before we married, he forwarded a job opportunity with Automattic as a sponsored community organizer within the WordPress open source project. It was a perfect match.

\n

And that is how, in 2018, after going through the standard Automattic interview process (another story that I’m happy to share with anyone interested) I found myself a community organizer for the WordPress Project.

\n

Where do we go now?

\n

I’ve only been in my current role for two and a half years, but during this time, my belief in the power of resilient communities has only grown, fortified by supporting meetup and WordCamp organizers, bolstered by working on diversity initiatives, and humbled by opportunities to serve teams as their lead, mentor, or member. I’ve met and worked with so many phenomenal community members, full of passion and creativity, and have loved every minute of what we do together.

\nThe WordCamp US 2019 team. I miss you all so much!\n

More than anything, what excites me the most is that we still have so much more we can achieve together. Personally, I also still have much to learn, about community growth, about WordPress, and about every individual who seeks to add WordPress to their story.

\n

In seeking out where I belong, I found WordPress, and I discovered that the way forward was to create spaces for others – I invite you to do that with me.

\n

The post Discover Where You Belong appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 07:09:31 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:10:\"Angela Jin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:21:\"Matt: Compounding Ice\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=53641\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"https://ma.tt/2021/02/compounding-ice/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1899:\"

I learned something novel about how the ice age happened from this Freakishly Strong Base post by Morgan Housel:

\n\n\n\n

The prevailing idea before [Wladimir] Köppen was that ice ages occur when the earth’s tilt supercharges the wrath of cold winters. Köppen showed that wasn’t the case. Instead, moderately cool summers are the culprit.

It begins when a summer never gets warm enough to melt the previous winter’s snow. The leftover ice base makes it easier for snow to accumulate the following winter, which increases the odds of snow sticking around in the following summer, which attracts even more accumulation the following winter. Perpetual snow reflects more of the sun’s rays, which exacerbates cooling, which brings more snowfall, and on and on.

You start with a thin layer of snow left over from a cool summer that no one pays much attention to, and after a few tens of thousands of years the entire earth is covered in miles-thick ice.

\n\n\n\n

Fascinating! The blog goes on to apply the idea to that strong base, accumulating a bit at a time, to investing and business. The power of compounding seems appropriate to share on the day Jeff Bezos announced his retirement.

\n\n\n\n

I’ll leave you with one of my favorite quotes from Charlie Munger, which is also how the article ends:

\n\n\n\n

‘The first rule of compounding: never interrupt it unnecessarily.’

Charlie Munger
\n\n\n\n

The iceberg photo is one I took near Svalbard in 2011.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Feb 2021 01:44:42 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"WordPress.org blog: WordPress 5.7 Beta 1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9599\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2021/02/wordpress-5-7-beta-1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7694:\"

WordPress 5.7 Beta 1 is now available for testing! \"🗣\"

\n\n\n\n

This software is still in development, so it’s not recommended to run this version on a production site. Consider setting up a test site to play with the new version.

\n\n\n\n

You can test the WordPress 5.7 Beta 1 in two ways:

\n\n\n\n
  • Install/activate the WordPress Beta Tester plugin (select the Bleeding edge channel and the Beta/RC Only stream)
  • Direct download the beta version here (zip).
\n\n\n\n

The current target for final release is March 9, 2021. That’s just five weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

So what’s new? \"🤔\"

\n\n\n\n

Improvements in Core

\n\n\n\n

Lazy-load iframes
Now you can enable lazy-loading of iframes by adding the loading=\"lazy\" attribute to iframe tags on the front-end. 

\n\n\n\n

Migrating from HTTP to HTTPS is streamlined
Switching a WordPress site from HTTP to HTTPS has proven to be a pain for all involved. While on the surface, the Site Address and WordPress Address have to be updated, content with embedded HTTP URLs remains unchanged in the database. With this release, migrating a site to HTTPS is now a one-click interaction. URLs in the database are automatically replaced when the Site and WordPress Address are both using HTTPS.  Also, Site Health now includes an HTTPS status check.

\n\n\n\n

Standardize colors used in WP-Admin CSS to a single palette
This change collapses all colors used in the CSS to one of the available shades of blue, green, red, yellow, grey, black, and white. The palette makes it simpler than ever to build components your users can read, because half the range gives you great contrast with white type and a half with black, according to current accessibility guidelines.

\n\n\n\n

Ongoing cleanup after update to jQuery 3.5.1
jQuery deprecations in WordPress Core and bundled themes show up a lot less often, and the notifications make more sense to the user.

\n\n\n\n

New Robots API
The new Robots API allows the filter directives to be included in the ‘robots’ meta tag. Also, the directive max-image-preview:large is now included by default to allow large image previews to be displayed in search engines (unless the blog is marked as not being public).

\n\n\n\n

Improvements in the Editor

\n\n\n\n
  • Inserter drag and drop: Blocks and block patterns can now be dragged directly from the inserter into the post canvas.
  • Full height alignment: Blocks such as the Cover block now can have an option to expand to fill the entire viewport.
  • Block variations: The icon and description of a block variation is now shown in the block inspector, and a new dropdown in the block inspector lets you switch between block variations.
  • Reusable blocks: Several enhancements to the usability and stability of reusable blocks have been made, and reusable blocks are now saved at the same time that the post is saved.
  • Buttons block: The Buttons block now supports vertical alignments, and you can set the width of a button to a preset percentage.
  • Social Icons block: You can now change the size of the icons in the Social Icons block.
  • Font size in more places: You can now change the font size in the List and Code blocks.
  • Many many other enhancements and bug fixes. To see all of the features for each release in detail check out the Gutenberg release posts: 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, and 9.9.
\n\n\n\n

How You Can Help

\n\n\n\n

Watch the Make WordPress Core blog for 5.7-related developer notes in the coming weeks, which will break down these and other changes in greater detail.

\n\n\n\n

So far, contributors have fixed 143 tickets in WordPress 5.7, including 68 new features and enhancements, and more bug fixes are on the way.

\n\n\n\n

Do some testing!

\n\n\n\n

Testing for bugs is a vital part of polishing the release during the beta stage and a great way to contribute. \"✨\"

\n\n\n\n

If you think you’ve found a bug, please post to the Alpha/Beta area in the support forums. We would love to hear from you! If you’re comfortable writing a reproducible bug report, file one on WordPress Trac. That’s also where you can find a list of known bugs.

\n\n\n\n

Props to @hellofromtonya, @sarahricker, @webcommsat, @marybaum, @jeffpaul, and @audrasjb for your peer revisions and @desrosj, @davidbaumwald, @cbringmann, and @chanthaboune for final review on this exciting news.

\n\n\n\n

____________________________________

\n\n\n\n

New Year, new goals
Each day, one small step
It’s the little things…

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 02 Feb 2021 22:31:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ebonie Butler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"WPTavern: Skinning the WordPress Admin, CSS Custom Properties on the Way\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111327\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:187:\"https://wptavern.com/skinning-the-wordpress-admin-css-custom-properties-on-the-way?utm_source=rss&utm_medium=rss&utm_campaign=skinning-the-wordpress-admin-css-custom-properties-on-the-way\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4912:\"

Using CSS custom properties for the WordPress admin color scheme system is listed for the WordPress 5.7 milestone. It feels low-key enough that most would pass it over as a simple upgrade to keep up with the times. However, this feature can create ripples that spread and benefit the ecosystem in the years to come.

\n\n\n\n

Kirsty Burgoine, a front-end developer at Human Made, announced the introduction of CSS custom properties for the WordPress admin. The initial work landed in a ticket for iterating on the admin color schemes. The first stage reduced the color palette from 199 colors down to 99, creating a more reasonable list to work from.

\n\n\n\nWordPress color palette by Kelly Choyce-Dwan.\n\n\n\n

The second stage will look at how to implement a CSS custom properties system that makes sense. That means doing the dreaded work of naming things. The Core CSS team is currently looking for feedback on how to best handle property names going forward and are open to alternative implementation suggestions.

\n\n\n\n

Once custom properties are in place, the new system could open a world of possibilities in the long term.

\n\n\n\n

Thinking Ahead

\n\n\n\n

My hopes of having WordPress admin themes have lived and died on each piece of news around custom color schemes, imaginative mockups, and the general hype of projects that never lived up to their promise. I may well be getting my hopes up again.

\n\n\n\n

Developers have been able to register custom admin color schemes since WordPress 2.5, but it was never an ideal system.

\n\n\n\n

One of my favorite plugins is Admin Color Schemes, which is maintained by designers from the core WordPress team. It adds several schemes for users to choose from.

\n\n\n\nCruise scheme from the Admin Color Schemes plugin.\n\n\n\n

Sass, which is used to generate the admin color schemes in core today, has simplified the process. However, third-party developers still need to make sure their custom schemes remain updated between WordPress versions. The system is not built to protect against future compatibility issues.

\n\n\n\n

CSS custom properties change the game. With their widespread use and compatibility with modern browsers, custom admin theming — at least color scheming — is much more of a reality.

\n\n\n\n

I have not been this excited about the possibility of something new since Tung Do released his short-lived DP Dashboard plugin in 2013. Now, a few days shy of eight years since its initial beta testing phase, I once again have some hope.

\n\n\n\nOriginal beta design of the DP Dashboard plugin.\n\n\n\n

Given the little wisdom I have accumulated over the years, I now see that completely custom admin themes never led to the right path. I am happy we never went down it. Administration UIs need to work consistently for users and adapt to changes over time. Custom themes were a maintenance nightmare every time WordPress added a feature. However, a system built on CSS custom properties means that customizations do not break — or break far less often — as the software’s UI evolves.

\n\n\n\n

While the focus right now is on color schemes, nothing is stopping WordPress from moving onto other features in the future. It is possible to set up a global styles system for designers to skin the admin in all kinds of interesting ways without breaking anything. Minor options like the border-radius of buttons, font-family choices, or heading font-sizes would be easy to roll in over time.

\n\n\n\n

As the block system continues to replace parts of the WordPress admin, custom admin skins will be far easier to maintain. Because everything in the block system is built as a component, it better future-proofs against back-compatibility issues.

\n\n\n\n

There is a long and winding path toward a feature-complete admin skinning system. However, it is not outside the realm of possibility.

\n\n\n\n

I look forward to the day when theme authors can easily roll out admin designs that match the front end. Perhaps integration with the block system’s theme.json is a possibility. I would not mind seeing a separate admin theme directory in the future either. The use case may be too niche at this point, but it never hurts to keep the idea in the back of everyone’s mind.

\n\n\n\n

If nothing else, the move to custom properties lets the team clean up the admin CSS and makes it easier to add custom color schemes. That is a win for the WordPress project.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 02 Feb 2021 22:16:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"WPTavern: WordPress 5.7 Will Make It Easier to Migrate From HTTP to HTTPS\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111377\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/wordpress-5-7-will-make-it-easier-to-migrate-from-http-to-https?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-5-7-will-make-it-easier-to-migrate-from-http-to-https\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2593:\"

The next major release of WordPress will make it much easier for users to migrate their sites from HTTP to HTTPS. It introduces new capabilities to detect if the user’s hosting environment has support for HTTPS and provides a one-click update process, handling mixed content rewrites where possible.

\n\n\n\n

“A major pain point in WordPress has been the migration of a WordPress site from HTTP to HTTPS: While changing the Site Address and WordPress Address to use HTTPS is trivial, updating references to the old URLs in existing content is not,” WordPress Core Committer Felix Arntz said in the ticket proposing the feature. “It cannot be accomplished within core UI and requires use of more advanced tools, such as WP-CLI or plugins like Better Search Replace, which is a no-go for most users.”

\n\n\n\n

In WordPress 5.6, there is no clear guidance in the Site Health screen about how to migrate to HTTPS, even though it shows as an issue. The user would need to learn more about how to update it manually, starting with changing the site URLs.

\n\n\n\n

In WordPress 5.7, if HTTPS is supported, the Site Health Status screen will notify users and guide them with a new button that updates the site with a single click. It also migrates the site content on the fly to use HTTPS for URLs. Arntz recorded a video demo of the update:

\n\n\n\n
\n\n
\n\n\n\n

This change also comes with new environment variables and filters that allow hosting providers to change the URLs linked in the HTTPS status check in Site Health, so they can more effectively manage it for their customers’ hosting options. This is similar to how hosts can modify URLs for updating the PHP version, which has had a positive impact on getting sites running on supported versions of PHP.

\n\n\n\n

It’s important to note that the streamlined HTTP to HTTPS migration in 5.7 does not handle updating content in the database. Also, if a site’s URLs are controlled by constants, the update is not possible to complete automatically. In these instances, the HTTPS status check on the Site Health screen will inform the user why the site would need to be manually updated.

\n\n\n\n

More technical details are available in the ticket and commit message, and a dev note should be forthcoming.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 02 Feb 2021 19:08:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:44:\"WPTavern: Block Manager Redesign Coming Soon\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111349\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:133:\"https://wptavern.com/block-manager-redesign-coming-soon?utm_source=rss&utm_medium=rss&utm_campaign=block-manager-redesign-coming-soon\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4379:\"

WordPress’ block management interface was introduced in Gutenberg 5.3, released in March 2019, and is due for an update. In case you haven’t explored the editor’s Tools menu, the block manager setting allows you to select which blocks will be shown or hidden in the block inserter.

\n\n\n\n

Last week, Automattic engineer Nik Tsekouras opened a new issue in the Gutenberg repository for tracking block manager enhancements. A few planned enhancements are already on deck, including moving the block manager into the Preferences Modal, redesigning it to use panels, and adding support for toggling block variations on and off.

\n\n\n\n

The updated Preferences Modal is expected in the Gutenberg 9.9 milestone, which will be included in WordPress 5.7. (Gutenberg versions 9.3 – 9.9 will be rolled into the release.) Moving the block manager into its future home inside the Preferences modal will be completed in a follow-up PR, since it needs to be refactored to use the panels design. Tsekouras shared a gif of the design plan for this update:

\n\n\n\n
\n\"Block\n
\n\n\n\n

In the discussion on the tracking issue, Birgit Pauli-Haack requested that the updated block manager also include information about how many times each particular block is used on the site. She described a common scenario where this feature could be helpful:

\n\n\n\n

We recently took a site live were multiple team members collaborated designing the site and adding content, each aiming for the best outcome with blocks.

Some installed additional blocks from plugins to test and provide options or just do a proof of concept.

Before we took the site live, we noticed there are now 148 blocks available over 4 additional plugins + core.

We now have no way to find out which blocks were used over 40 pages and posts. I looked at a few Block managers plugins and none seems to be able to provide an answer to a fairly basic question:
Which blocks did we actually use throughout the site?

We would need the information to decide on which plugin can we safely uninstall.and which should we keep.

A revamp of Block managers could – and should- provide an answer.

\n\n\n\n
An example of instances displayed in the Find My Blocks plugin
\n\n\n\n

The Find My Blocks plugin, created by Eddy Sims, offers a more advanced version of what Pauli-Haack is requesting. It has its own dedicated settings page for displaying a list of the block types in use on the site, along with the number of times each has been used, posts/pages where the blocks are in use, if it is a reusable block, a nested block, and much more information. Pauli-Haack suggests the block manager simply show the number of instances where the block is in use.

\n\n\n\n

As the block editor becomes more widely adopted, it is going to become imperative for users to be able to see, at a glance, the number of instances where a block is in use. Right now, even those who adopted the block editor right away haven’t been using it for more than a few years. Long term, after years of adding blocks, people are going to need more information when managing them, and they may not know about utility plugins like Find My Blocks.

\n\n\n\n

Discussion is still open on the topic Pauli-Haack raised regarding block manager enhancements. You can subscribe to the new block manager enhancements tracking issue if you want to follow the progress on updates coming in the next few months.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 02 Feb 2021 04:14:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: WordPress Launches WP Briefing Podcast, Episodes Expected Every 2 Weeks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111330\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/wordpress-launches-wp-briefing-podcast-episodes-expected-every-2-weeks?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-launches-wp-briefing-podcast-episodes-expected-every-2-weeks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5097:\"

True to its name, the first WP Briefing podcast lasted just over 12 minutes. Josepha Haden Chomphosy, the Executive Director of WordPress, jump-started the second month of 2021 with a show that should arrive on the our doorstep every two weeks. With what seems to be overwhelming positive support on Twitter, the podcast was welcomed by the WordPress community.

\n\n\n\n

This will be different from many other podcasts in the WordPress ecosystem. It will not cater specifically to a developer audience. Chomphosy also said there would be no hot-takes on Twitter. “Just bite-sized chunks about the WordPress OSS project and the how/why around what it does.”

\n\n\n\n

The show promises to be short. And, because it will only come around every fortnight, it gives people time to keep up to date at their leisure.

\n\n\n\n

“You can think of this as a sort of WordPress appreciation for any level — and honestly, all levels of WordPress awareness,” said Chomphosy of the podcast’s purpose. “Bite-sized insights into what makes it all work. “

\n\n\n\n

Chomphosy will be running the show every couple of weeks and plans to follow a specific format of three segments:

\n\n\n\n
  1. An easy-to-digest overview of a cool WP philosophy.
  2. A highlight of a community success story or a noteworthy contributor.
  3. A small list of big things to know about (or do) in the coming weeks.
\n\n\n\n

Guest speakers may join the show from time to time to cover specific topics when their expertise is warranted.

\n\n\n\n

A common theme in the past few years, particularly as the pace of block development has quickened, is that many people find it hard to keep up with the project. Even those who are neck-deep in WordPress development can feel a little lost at times. A podcast built on the idea of keeping the community in the loop may even be a bit overdue.

\n\n\n\n

“It’s been on my list of needs since late 2017, but hasn’t been my highest priority during that time,” said Chomphosy. “It’s been years since WordPress has been small enough for any single, part-time contributor to keep track of what’s next. Contributors across the project are doing excellent work to communicate efficiently about the work we’re all focused on, but it never hurts to lend some clarification where possible.”

\n\n\n\n

The Seriously Simple Podcasting plugin currently powers the podcast. The plugin is developed by Castos, which is a podcasting host and analytics service. It has over 20,000 active installs and a 4.8-star rating.

\n\n\n\n

Chomphosy said they chose Seriously Simple Podcasting because the WP Briefing crew was already familiar with it. “I didn’t want to ask folks to learn an entirely new software while we’re still working out the process.”

\n\n\n\n

The first episode focused on an introduction to WP Briefing. The overview segment covered three trends in action from Matt Mullenweg’s State of the Word 2020 address. Dave Loodts was this week’s success story after sharing how he “blindly” chose a career in freelance web development and is still going strong after 15 years (congrats, Dave!). Chomphosy wrapped up the podcast with notes on Full Site Editing, Learn WordPress, and automation tools to help contributor teams.

\n\n\n\n

It is definitely worth a listen if you can spare a few minutes. I am excited to see where this project goes in the future and see how it helps keep more of the community in the loop.

\n\n\n\n

If I had one feature request, it would be for the development team to put the podcast player in the WordPress embed, which is easy enough to do with a custom embed template. This would let bloggers embed the show on their pages and share it with more people.

\n\n\n\n

However, there may be ways to embed it via third-party services down the road. “It just went live and we’re working on getting it listed everywhere,” said Automattician Marcus Kazmierczak in response to whether it would be on Google Podcasts or Spotify. “Hopefully it’ll be showing up shortly.”

\n\n\n\n

Update: the embed now includes the audio player:

\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 01 Feb 2021 21:52:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"WPTavern: Upsells, Barriers, and the End/Beginning of the Quality $free Themes Era\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=110940\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:203:\"https://wptavern.com/upsells-barriers-and-the-end-beginning-of-the-quality-free-themes-era?utm_source=rss&utm_medium=rss&utm_campaign=upsells-barriers-and-the-end-beginning-of-the-quality-free-themes-era\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14535:\"

The WordPress.org theme directory is becoming little more than a crippleware distributor. I suppose it was inevitable given its reach, which can be worth $1,000s/month for theme authors.

Justin Tadlock via Twitter
\n\n\n\n

As I think back on that tweet from 2019, I realize how unfair it was to refer to the themes coming into the directory as “crippleware.” At the time, I was a part of the Themes Team (formerly the Theme Review Team). However, there were real cases of crippleware submitted to the directory when I wrote that.

\n\n\n\n

To define crippleware: some themes blocked core WordPress features and made them available via the “pro” versions. It was one of the more blatant abuses of the free themes directory I had seen for a profit.

\n\n\n\n

However, the term does not represent the majority of themes submitted. Most of what we see today are “lite” themes. Some of them are well-designed themes that provide value to end-users at no cost. Others are stripped-down versions of what you would typically see from a starter theme. While they are fully functional — the Themes Team’s rules have been strict on this requirement — the real value of the theme is in the upsell.

\n\n\n\n

This is not the start of an anti-commercial theme rant. When WordPress developers and agencies are successful, it benefits the whole ecosystem. But, how do we balance that with providing value — which is subjective, I know — to the free theme directory? How do we transition the theme directory to something flowing with more artistic or even experimental ideas?

\n\n\n\n

Guidelines and Stumbling Blocks

\n\n\n\n

Matt Mullenweg, WordPress co-founder and project lead, posted the following on the Post Status Slack two weeks ago:

\n\n\n\n

The .org theme directory is particularly bad when you compare it to any half-decent commercial theme marketing page, or the designs available on other site building services or Themeforest directories. The .org theme directory rules and update mechanism have driven out creative contributions, it’s largely crowded out by upsell motived contributions.

\n\n\n\n

There is a lot to unpack in his statement. I agree with most of it. The Themes Team agrees with at least some of it. However, its members lack direct control over the system outside of the guidelines.

\n\n\n\n

“I actually agree with this in a sense,” said Themes Team rep William Patton. “Creativity has not prospered in the directory, and I think a large part of it is the barrier of entry. ‘Don’t do bad things’ is the overarching guideline for the theme directory, but that can be viewed very subjectively. If it were the only guideline we would see a lot of things that might not be best suited here. If we want to encourage creativity then more freedom to express it would likely be a good way to start bringing it back. However, it can be hard to know where the line should be placed.”

\n\n\n\n

The team sometimes gets pulled in two different directions. When the project lead asks for things to be more open, many members rally around that idea. On the other hand, the call for stricter accessibility requirements, for example, are popular with others in the community. It is a choice between two ends of the spectrum that are tough to pull together as the gatekeepers to the official directory.

\n\n\n\n

“Why couldn’t it be more like the plugin directory?” asked Mullenweg. “That has all the same potential issues and has been working pretty well. I’d like it to work just like the plugin directory, with direct access for authors, and most reviews being post-review vs. pre-review.”

\n\n\n\n

The Themes Team is not against the idea. More than anything, they just need the help to make any significant change.

\n\n\n\n

“Having the themes directory work like the plugins directory would be great!” said Themes Team rep Ari Stathopoulos. “And, in fact, it’s something we’ve all been asking for years, but there are many technical challenges because they are built fundamentally differently. Plugin authors have access to their plugin’s SVN while themes don’t. Theme reviews are public while plugin reviews are private and closed. There would need to be lots of changes in systems and meta. Not to mention that, as far as I know, plugins don’t do post-reviews, they do pre-reviews the first time a plugin is uploaded and post-reviews for updates (which is exactly what happens in themes too).”

\n\n\n\n

The team has created tickets, asked for help, and have generally awaited a champion to push innovative ideas — or any ideas — forward. Seven-year-old ticket to support the standard readme files available to plugins? No takers as of yet. Allowing block-based themes to be uploaded? Maybe we can make that happen sometime soon.

\n\n\n\n

The guidelines are likely less crippling than the outdated Trac review system, uploading ZIP files for updates (which Mullenweg mentioned), the limitation of a style.css header for the theme description, and the lackluster theme previewer.

\n\n\n\nTheme review system on Trac.\n\n\n\n

For the most part, nearly every guideline has been put in place in hindsight. The team finds consistent abuse or issues and course-corrects.

\n\n\n\n

“I don’t think that Matt’s idea of a creative theme is a theme that is not secure or not compatible with GPL,” said team repo Carolina Nymark. “Creativity is not limited by being asked to sanitize options. It is not limited by making sure that your theme can be translated. If the reviewers saw creative, beautiful themes that lacked in some other aspect like basic accessibility, then the team could help explain to the theme author what kind of changes are necessary. But that is not the kind of themes that are being submitted.”

\n\n\n\n

Financial Incentive

\n\n\n\n

In the mid-2000s, the average theme developer could get away with building an entire theme on a lazy weekend afternoon. WordPress was far less complicated. Theme development was not a race to the bottom, bundling every feature imaginable.

\n\n\n\n

Today, we live in the era of the multi-purpose theme. To soar to the top of the popular list, most themes need to handle everything from being the online face of a pizza restaurant to masonry grids for artist portfolios. They also either need good luck, name recognition, or good marketing. That is the reality for the average theme developers trying to make a name for themselves.

\n\n\n\n

It makes for boring themes in a free theme directory. If the theme author has any financial motivation behind creating a WordPress theme, they need to bundle the nicer features into a paid package.

\n\n\n\n

As Eric Karkovack wrote in his piece for Speckyboy, Are High-Quality Free WordPress Themes a Thing of the Past?, “Money changed the equation.”

\n\n\n\n

There is not much incentive to push a free theme out to the directory just for fun. Most themers are spending a month or more of their time in today’s ecosystem to build a theme. The days of the weekend-afternoon project seem all but gone.

\n\n\n\n

Even releasing a theme to give back can often be a letdown. There is little chance of any name recognition as the developer’s creation is swamped by the hordes of lite themes in control of the directory. There is no way for unknown players to get any exposure through the directory except in the brief moments their theme lands in the latest themes list. It is that one make-or-break moment that could potentially help best the algorithm and slip into the nearly unattainable popular list.

\n\n\n\n

In comparison to Themeforest, the WordPress.org directory is lacking. Themeforest is inviting to users because it provides the backend tools for theme authors to market their themes. They can load up custom demos, provide screenshots, use a modern categorization system, and provide all sorts of extra data to end-users. They’re in the business of selling a product to users.

\n\n\n\nWordPress themes on ThemeForest\n\n\n\n

While WordPress.org may be free, it should still be selling the promise of a beautiful website to its users. I have always said it, the themes available on WordPress.org are the face of WordPress.

\n\n\n\n

Users deserve better. Theme authors deserve better tools to make it happen.

\n\n\n\n

Even with better tools and a better-designed directory in place, there is no guarantee of an uptick of creative contributions or a better overall balance that keeps pure upsells in check.

\n\n\n\n

“I think that due to the reach a theme or plugin that becomes popular quickly commands, monetization is a necessity to be able to properly ‘support’ such an endeavor,” said Joost de Valk, CPO of Yoast, in response to Mullenweg’s statement on Post Stats. “I think the community also ‘demands’ a certain stability and a certain level of support that is simply unfeasible to expect from any non paid contributor. Because WordPress.org has no way of doing that monetization ‘on platform,’ this is what you end up with.”

\n\n\n\n

He also argued that something akin to an app store would make things like the “balkanization from non-G-based site builders” less attractive to theme authors. Such a store has little or no chance of becoming a reality.

\n\n\n\n

“I think we first need to agree on what the theme directory should be,” he said. “We need a ‘mission statement,’ of sorts. And I think we probably need less control than we currently have, be much more like the plugin directory. But if we have a vision of what it should be, then we could work towards that.”

\n\n\n\n

There is an opportunity to turn things around. Full Site Editing will leave ample room for releasing creative, fully-featured themes with upsells. There is plenty of reason to be excited about pattern design and template packs, better value-adds for theme authors who want to upsell. The problem is going to be getting authors to abandon traditional themes and explore new terrain.

\n\n\n\n

Changes Are Coming, Maybe, Hopefully

\n\n\n\nPopular listing on the WordPress theme directory.\n\n\n\n

For some, this is a song and dance they already know the lyrics and steps to. It is a years-long conversation that has netted little in return.

\n\n\n\n

However, the WordPress.org theme directory may be forced to change one way or another. Block-based themes are not arriving in some distant future; they are knocking at the door. Full Site Editing is slated to land in WordPress 5.8 this June.

\n\n\n\n

With this change, the WordPress.org theme directory needs to be prepared. Even with a move today, it will be a mad scramble to get systems ready in a handful of months. If waiting for the last minute, it is just asking for chaos. Block-based themes should already be allowed to be uploaded, for example.

\n\n\n\n

As we saw earlier this week, Automattic launched its Blank Canvas theme. It is designed to work on single-page websites. It does not support commenting out of the box, which is a requirement for inclusion into the official directory.

\n\n\n\n

Block-based themes will forever change the system. In the past, traditional themes needed to cover all their bases, integrating with every front-end feature of WordPress. In the future, that is not necessarily the case. Because everything will be built from blocks and users will have direct access to customize those blocks, a theme has no need to cover everything. The user can add and remove features at their leisure. The review guidelines need to be molded for this future.

\n\n\n\n

Full Site Editing almost seems purpose-built for outside-the-box theme designers. Whether it is a simple, one-page wedding invitation or an author’s book landing page, there are more possibilities upcoming than there ever were in the past. And, these things will be far easier to build on the theme-design side of things. It will remove a lot of burden from developers and from the Themes Team during reviews.

\n\n\n\n

“Regarding the FSE themes: to be honest all my hopes are there,” said Stathopoulos. “They are very different, and it’s a fresh start for the repository. New theme paradigm, a different set of rules (with of course some overlap for basic things), and a new way of doing things and thinking about themes. However, if they are presented in the same way in the same repo we have now, then nothing will change. the theme repo needs to change, and there’s no way around that. But that’s a decision that will have to be made from the WordPress leadership and implemented by meta.”

\n\n\n\n

As always, I remain optimistic about the future of WordPress themes, hoping for the ushering in of a new era. I get the sense that the Themes Team shares some of that enthusiasm, at least cautiously so. More than anything, they need the community, particularly theme authors, to chip in and shape that vision of what the WordPress theme directory should be.

\n\n\n\n

Perhaps today, the stars are nearing alignment. Mullenweg plans to chat with the team and gather feedback in the coming weeks.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 29 Jan 2021 22:53:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: GitLab Drops Bronze/Starter Tier in Pricing Update\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=111219\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/gitlab-drops-bronze-starter-tier-in-pricing-update?utm_source=rss&utm_medium=rss&utm_campaign=gitlab-drops-bronze-starter-tier-in-pricing-update\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5745:\"

This week GitLab announced a pricing change that eliminates its Bronze/Starter tier in favor of a three-tier subscription model. The Starter tier, previously offered at $4/month, included features like single-team project management, next day business support, and 2,000 CI/CD minutes.

\n\n\n\nGitLab Pricing prior to Jan 26, 2021 Update\n\n\n\n

GitLab’s updated pricing page shows the benefits that were included in the Starter plan are now only available in the Premium tier at a 5x price increase, introducing a larger gap between free accounts and paying customers. The change specifically impacts those who were happy to pay for a few extras but don’t need the full array of premium features.

\n\n\n\n\n\n\n\n

GitLab is offering to transition customers at a discount, where existing customers have the option to renew at the current price for an additional year or upgrade to Premium at a discount. The company also makes a case for the free tier, which it says includes 89% of the features in Bronze/Starter, with 450 new features added last year.

\n\n\n\n

“The Bronze/Starter tier does not meet the hurdle rate that GitLab expects from a tier and is limiting us from investing to improve GitLab for all customers,” GitLab co-founder and CEO Sid Sijbrandij said. “Ending availability of the Bronze/Starter tier will help us accelerate development on customers’ priority needs such as improving usability, availability, performance, and delivering enterprise-grade security and compliance.”

\n\n\n\n

It makes sense that GitLab is turning its attention to factors like “hurdle rate,” as Sijbrandij told CNBC that he’s still looking to take the company public after a late 2020 employee share sale, which valued the company at $6 billion. GitLab passed $150 million in annual recurring revenue in 2020, but is tightening up its subscription model as the company tailors commercial offerings for those who need DevOps features.

\n\n\n\n

GitLab did not share the pricing update announcement on Twitter, perhaps in anticipation of how controversial it would be. The company posted the link in the GitLab forums where customers expressed disappointment in the change.

\n\n\n\n

“We are currently paying Bronze level because there are some features that we find interesting,” Riccardo Padovani said. He specifically referenced issue weights, iterations, multiple issue assignees, and issue dependencies.

\n\n\n\n

“These features are now in the premium level. We were not interested in the previous ‘silver’ level. On the long term, this is basically a 5 times price increase. Being a vocal supporter of GitLab in my company, I am not happy about this, at all.”

\n\n\n\n

One customer said the change “feels like a bit of a kick in the teeth,” while another noted that GitLab’s mid-tier offering costs just one dollar less than GitHub’s enterprise plan. Many of GitLab’s existing Starter tier customers have a large number of users who are not developers and do not have access to code or pipeline features. They are supporting staff who check bug reports or project management teams that create issues. Without the ability to pay per user role, upgrading every seat in the team to Premium doesn’t make sense for these types of use cases.

\n\n\n\n

Customers who had recently convinced their organizations to go with GitLab, along with those who have invested time developing processes around the Starter tier features, are some of the most vocal opponents to the change. Some found the announcement off-putting, as it made it seem like paying Starter plan customers were actually costing GitLab money, requiring the tier to be eliminated. Many expressed that they only signed up for the tier to support GitLab and that they only used a handful of the features.

\n\n\n\n

“It’s worth pointing out that you say that ‘many Bronze/Starter customers adopted Gitlab just for source code management,’ – yes – that’s exactly what we use Gitlab for,” one customer said. “We don’t use CI, Issue Tracking, or any other features offered even in the free version, but we do want to have a couple of the SCM features offered in the Bronze/Starter tier. Do you really think that customers like us that are only looking for SCM are going to pay more for unnecessary features?”

\n\n\n\n

The GitLab employees in the thread seemed ready to defend the decision against the onslaught of criticism. While a few said they will take customers’ concerns and feedback under consideration, most were prepared to assure critics that the decision was made “through extensive research,” which likely leaves those most affected further alienated, if the 5x cost increase didn’t already make the decision for them. Bronze/Starter tier customers who are still examining their options can find the various transition paths in the pricing change announcement.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 29 Jan 2021 19:16:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WordPress Foundation: do_action hackathons and open-source workshops in 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=172229\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://wordpressfoundation.org/2021/do_action-hackathons-and-open-source-workshops-in-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6654:\"

In 2020, we saw do_action events and open-source workshops move online. Around the world, community members organized 5 do_action hackathons (4 of which were online) and a handful of open-source workshops last year. In moving these events online, community organizers not only brought their WordPress community closer together, but they were also able to make a positive impact on their local or regional community in an exceptionally-difficult year.  

\n\n\n\n

Seeing this impact, we would like to help more organizers host even more of these online charity hackathons (do_action events) and Introduction to Open Source workshops in 2021. This post shares more information for community organizers who would like to organize do_action events in 2021.

\n\n\n\n

do_action charity hackathons

\n\n\n\n

Based on feedback from the community members, do_action events so far have been quite impactful in how they bring participants together to help non-profits establish an online presence, something all the more significant in 2021. Here is how we plan to support do_action events in 2021:

\n\n\n\n
  • Improving the online do_action event documentation: The community team is currently working on revamping the documentation for online do_action events to include tips on remote collaboration, using collaboration tools, remote project management etc. Additionally, we will be reaching out to past do_action organizers to share recaps and help share task lists to help organizers get used to the online event format. 
  • Sponsored accounts: Organizers can reserve and use Community-sponsored Zoom Pro accounts for their events. 
  • Countrywide do_action events: There were a few countrywide do_action events in 2020. More regional/countrywide events are encouraged. 
  • Linking do_action events with WordCamps and mentoring: Since WordCamps are also online, organizers can organize do_action events in tandem with their online WordCamps, for more impact. Similarly, new do_action organizers will get mentoring from past organizers/mentors/community deputies.
  • Technology changes: The following changes will be implemented on the doaction.org website in 2021 to support our organizers in a better way: 
    • doaction.org to Google Workspace / G Suite (so that organizers can use custom emails – get access to a branded Google Workspace account) – Due March 2021
    • Doaction.org will be modified to support multiple event dates. – Due June 2021
    • The do_action application will be moved to doaction.org.- Due June 2021
\n\n\n\n

Does all of this sound exciting? If you would like to organize a do_action event in your locality, please send in your application through this form! Community deputies will get back to you shortly to take it forward.

\n\n\n\n

Introduction to Open-source workshops

\n\n\n\n

Introduction to Open Source workshops help spread knowledge and understanding of the open web and open source. They have also been instrumental in onboarding new contributors to WordPress. With the Learn WordPress workshops on Introduction to Open-source, meetup groups could host a watch party of the recorded workshop or organize a discussion group. Here’s how community members can organize open-source workshops in 2021. 

\n\n\n\n\n\n\n\n

Organizers can feature these workshops and discussion groups in the WordPress Foundation blogs by reaching out to the community team. Since open-source workshops are online, there is no cost involved in organizing them, but organizers can always request paid zoom accounts for their event

\n\n\n\n

The WordPress community has the power to uplift and empower people across the world by organizing these events. Our community organizers have already done stellar work in 2020, despite the challenges posed by the COVID-19 pandemic. As we step into 2021, we look forward to supporting and seeing what organizers do with these online events to help their communities!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 29 Jan 2021 12:55:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:112:\"WPTavern: WP Lookout Lets WordPress Users Track and Receive Notifications for Their Preferred Plugins and Themes\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=108062\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:269:\"https://wptavern.com/wp-lookout-lets-wordpress-users-track-and-receive-notifications-for-their-preferred-plugins-and-themes?utm_source=rss&utm_medium=rss&utm_campaign=wp-lookout-lets-wordpress-users-track-and-receive-notifications-for-their-preferred-plugins-and-themes\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8074:\"

Should WordPress notify users of plugin ownership changes? That was the question that Ian Atkins asked two months ago. WP Tavern readers seemed to think it was a good idea, at least those who commented on our coverage of it. However, the original Trac ticket has not seen any movement since.

\n\n\n\n

There are real technical issues with automating the process. A change of ownership does not necessarily equate to a change of the plugin author. This is often the case when someone acquires a company and maintains the brand.

\n\n\n\n

Tracking such changes does not necessarily need to go through WordPress. Chris Hardie built a service called WP Lookout that notifies users of such changes and much more. It has also been available since August of 2020.

\n\n\n\n

“WP Lookout watches for interesting changes to the WordPress themes and plugins that someone cares about,” said Hardie. “I created WP Lookout for professional WordPress developers, consultants, and site managers who want to stay more informed about the plugins and themes that they (and their clients) depend on.”

\n\n\n\n

While WP Lookout faces the same challenges with plugin ownership changes, it does have an advantage. It also tracks WordPress news organizations, including WP Tavern and Post Status. Even if the ownership change is not reflected on the plugin’s WordPress.org page, the story may be picked up in the news.

\n\n\n\n

Hardie launched the news-tracking feature in early December 2020. It includes the Wordfence vulnerabilities blog and iThemes vulnerabilities roundup blog as a part of the service’s security notification system. The service also scans change logs for keywords related to security.

\n\n\n\n

Notifications do not stop there. The WP Lookout tracks plugin, theme, and core WordPress updates. It also supports several commercial plugins such as Advanced Custom Fields Pro, Gravity Forms, and WP Rocket.

\n\n\n\n

“When we first decide to use a theme or plugin on a WordPress site, we hopefully research it thoroughly — code quality, ratings, support responsiveness, new release history, speed of security fixes, and so on — but once it’s installed it’s easy to neglect those important bits of ‘health’ information over time,” said Hardie. “Auto-updates are great from many perspectives, but I think anyone who has had to manage and troubleshoot a non-trivial WordPress site over time knows that it’s also important to stay aware of, for example, what’s happening in the change log or whether ownership of a plugin has changed hands. But nobody wants to log in to wp-admin on a bunch of sites every week to gather that info.”

\n\n\n\n

Hardie said WP Lookout will always have a robust free option for people who just want a daily email notification for a handful of plugins and themes. However, there are paid tiers for customers to access more features. They allow users to track more plugins and themes and get immediate alerts through email, RSS, Slack, or custom webhooks.

\n\n\n\n

“The middle tier supports up to 50 themes/plugins, immediate email notifications, and a personalized RSS feed,” he said. “The Builder tier supports up to 200 themes/plugins and adds in Slack and custom webhook support along with the option to just get security-related notifications. With more real-world user feedback, we may adjust what’s in each tier over time.”

\n\n\n\n

All users get access to the Builder tier for a few weeks after signing up. After that, they must subscribe or stick with the free tier features.

\n\n\n\n

How the Service Works

\n\n\n\nSingle plugin tracking history.\n\n\n\n

WP Lookout allows users to search for and add a tracker for individual plugins. The service primarily relies on the public WordPress.org API for getting plugin and theme data. This is the same system that WordPress uses to check to see if updates are available.

\n\n\n\n

“But it also goes beyond what the API offers,” said Hardie. “For example, there’s no standard yet for theme authors to provide .ORG theme change logs, and so that information doesn’t show up when you go to update a theme in wp-admin; you’d have to go poking around in Trac or source files to find it. So WP Lookout follows the trail to the change log details and puts that right in front of you.”

\n\n\n\nActive plugin trackers.\n\n\n\n

There is also a WP Lookout plugin available in the plugin directory. It uses an API key, which users can get from the WP Lookout website. The plugin then lets the WP Lookout service know what plugins and themes are installed and adds them as trackers. Using the plugin is far more efficient than manually adding individual plugins and themes.

\n\n\n\n

For plugins and themes that are not on WordPress.org, the service uses custom update APIs provided by the third-party developers. If that is not sufficient, it uses webpage scraping. For news sources, it parses RSS feeds.

\n\n\n\n

“It’s been interesting to see the wide variety of ways that WordPress theme and plugin authors do or don’t manage and present data publicly about their products,” said Hardie. “Some have API endpoints that return the same level of detail as the .ORG API, others have change log/version documents generated by some internal tools, and still others don’t bother doing much at all. I think an argument could be made to standardize on something here for the long-run to help boost the culture of keeping software updated, even/especially if it eventually makes the need for a tool like WP Lookout obsolete.”

\n\n\n\n

The Future of WP Lookout

\n\n\n\n

Hardie has no plans of sitting on what he has already built. One of the next goals is regularly adding new themes and plugins that are not on WordPress.org. This will mean connecting with development teams and figuring out how users can get notifications of things that often have no public APIs. The lack of standardization in the space could be a tough hurdle to jump.

\n\n\n\n

“I have a long list of features I’m planning to add, including things like integrating tracking GitHub repo releases, bringing some helpful data points from WP Lookout into the wp-admin interface, WordPress Packagist integration, allowing per-tracker Slack channel configurations, better internationalization, and better handling of change logs that theme/plugin authors chose to maintain outside of their .org code repositories,” he said.

\n\n\n\n

Hardie does not want to get too far ahead of himself with feature ideas. He said he is excited to get more feedback from users about what they find useful. Currently, there are 80 users, which is publicly available data. WP Lookout maintains an open data and financial transparency page.

\n\n\n\n

“Despite having paid options for more advanced users, I mostly think of this as a service I want to operate for the WordPress community, and I’ll always have a robust set of free functionality,” he said. “I’m also committed to participation in Five for the Future, bringing what I’ve learned here back into improvements that might benefit all WordPress users, whether they take advantage of WP Lookout or not.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 28 Jan 2021 21:56:16 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Tue, 23 Feb 2021 22:33:16 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:13:\"last-modified\";s:29:\"Tue, 23 Feb 2021 22:15:07 GMT\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 2\";s:16:\"content-encoding\";s:4:\"gzip\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(669, '_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1614162796', 'no'), +(670, '_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1614119596', 'no'), +(671, '_transient_timeout_dash_v2_01e18dead815ce736e3b9cccfbd773a5', '1614162796', 'no'), +(672, '_transient_dash_v2_01e18dead815ce736e3b9cccfbd773a5', '', 'no'), +(673, '_transient_timeout_wc_onboarding_product_data', '1614206003', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(674, '_transient_wc_onboarding_product_data', 'a:6:{s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:18:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Tue, 23 Feb 2021 22:33:23 GMT\";s:12:\"content-type\";s:31:\"application/json; charset=UTF-8\";s:14:\"content-length\";s:5:\"11538\";s:12:\"x-robots-tag\";s:7:\"noindex\";s:4:\"link\";s:60:\"; rel=\"https://api.w.org/\"\";s:22:\"x-content-type-options\";s:7:\"nosniff\";s:29:\"access-control-expose-headers\";s:33:\"X-WP-Total, X-WP-TotalPages, Link\";s:28:\"access-control-allow-headers\";s:73:\"Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\";s:13:\"x-wccom-cache\";s:3:\"HIT\";s:13:\"cache-control\";s:10:\"max-age=60\";s:5:\"allow\";s:3:\"GET\";s:16:\"content-encoding\";s:4:\"gzip\";s:4:\"x-rq\";s:15:\"gru1 88 94 3130\";s:3:\"age\";s:2:\"44\";s:7:\"x-cache\";s:3:\"hit\";s:4:\"vary\";s:23:\"Accept-Encoding, Origin\";s:13:\"accept-ranges\";s:5:\"bytes\";}}s:4:\"body\";s:48161:\"{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Automatically calculate how much sales tax should be collected for WooCommerce orders - by city, country, or state - at checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/Woo-Multichannel-Extension-Store-Logo-new-colour-scheme.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195}]}\";s:8:\"response\";a:2:{s:4:\"code\";i:200;s:7:\"message\";s:2:\"OK\";}s:7:\"cookies\";a:0:{}s:8:\"filename\";N;s:13:\"http_response\";O:25:\"WP_HTTP_Requests_Response\":5:{s:11:\"\0*\0response\";O:17:\"Requests_Response\":10:{s:4:\"body\";s:48161:\"{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Automatically calculate how much sales tax should be collected for WooCommerce orders - by city, country, or state - at checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/Woo-Multichannel-Extension-Store-Logo-new-colour-scheme.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195}]}\";s:3:\"raw\";s:48798:\"HTTP/1.1 200 OK\r\nServer: nginx\r\nDate: Tue, 23 Feb 2021 22:33:23 GMT\r\nContent-Type: application/json; charset=UTF-8\r\nContent-Length: 11538\r\nConnection: close\r\nX-Robots-Tag: noindex\r\nLink: ; rel=\"https://api.w.org/\"\r\nX-Content-Type-Options: nosniff\r\nAccess-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages, Link\r\nAccess-Control-Allow-Headers: Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\r\nX-WCCOM-Cache: HIT\r\nCache-Control: max-age=60\r\nAllow: GET\r\nContent-Encoding: gzip\r\nX-rq: gru1 88 94 3130\r\nAge: 44\r\nX-Cache: hit\r\nVary: Accept-Encoding, Origin\r\nAccept-Ranges: bytes\r\n\r\n{\"products\":[{\"title\":\"WooCommerce Google Analytics\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/GA-Dark.png\",\"excerpt\":\"Understand your customers and increase revenue with world\\u2019s leading analytics platform - integrated with WooCommerce for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2d21f7de14dfb8e9885a4622be701ddf\",\"slug\":\"woocommerce-google-analytics-integration\",\"id\":1442927},{\"title\":\"WooCommerce Tax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Tax-Dark.png\",\"excerpt\":\"Automatically calculate how much sales tax should be collected for WooCommerce orders - by city, country, or state - at checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/tax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":3220291},{\"title\":\"Stripe\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Stripe-Dark-1.png\",\"excerpt\":\"Accept all major debit and credit cards as well as local payment methods with Stripe.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/stripe\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"50bb7a985c691bb943a9da4d2c8b5efd\",\"slug\":\"woocommerce-gateway-stripe\",\"id\":18627},{\"title\":\"Jetpack\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Jetpack-Dark.png\",\"excerpt\":\"Power up and protect your store with Jetpack\\r\\n\\r\\nFor free security, insights and monitoring, connect to Jetpack. It\'s everything you need for a strong, secure start.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jetpack\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"d5bfef9700b62b2b132c74c74c3193eb\",\"slug\":\"jetpack\",\"id\":2725249},{\"title\":\"Facebook for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Facebook-Dark.png\",\"excerpt\":\"Get the Official Facebook for WooCommerce plugin for three powerful ways to help grow your business.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/facebook\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"0ea4fe4c2d7ca6338f8a322fb3e4e187\",\"slug\":\"facebook-for-woocommerce\",\"id\":2127297},{\"title\":\"Amazon Pay\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Amazon-Pay-Dark.png\",\"excerpt\":\"Amazon Pay is embedded in your WooCommerce store. Transactions take place via\\u00a0Amazon widgets, so the buyer never leaves your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/pay-with-amazon\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9865e043bbbe4f8c9735af31cb509b53\",\"slug\":\"woocommerce-gateway-amazon-payments-advanced\",\"id\":238816},{\"title\":\"Square for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Square-Dark.png\",\"excerpt\":\"Accepting payments is easy with Square. Clear rates, fast deposits (1-2 business days). Sell online and in person, and sync all payments, items and inventory.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/square\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e907be8b86d7df0c8f8e0d0020b52638\",\"slug\":\"woocommerce-square\",\"id\":1770503},{\"title\":\"WooCommerce Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Dark-1.png\",\"excerpt\":\"Print USPS and DHL labels right from your WooCommerce dashboard and instantly save up to 90%. WooCommerce Shipping is free to use and saves you time and money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"f31b3b9273cce188cc2b27f7849d02dd\",\"slug\":\"woocommerce-services\",\"id\":2165910},{\"title\":\"Mailchimp for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/09\\/logo-mailchimp-dark-v2.png\",\"excerpt\":\"Increase traffic, drive repeat purchases, and personalize your marketing when you connect to Mailchimp.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/mailchimp-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b4481616ebece8b1ff68fc59b90c1a91\",\"slug\":\"mailchimp-for-woocommerce\",\"id\":2545166},{\"title\":\"WooCommerce Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Pay-Dark.png\",\"excerpt\":\"The only payment method designed exclusively for WooCommerce, by WooCommerce. Securely accept major credit and debit cards on your site. View and manage your transactions within your WordPress dashboard.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"8c6319ca-8f41-4e69-be63-6b15ee37773b\",\"slug\":\"woocommerce-payments\",\"id\":5278104},{\"title\":\"WooCommerce Subscriptions\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Subscriptions-Dark.png\",\"excerpt\":\"Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscriptions\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"6115e6d7e297b623a169fdcf5728b224\",\"slug\":\"woocommerce-subscriptions\",\"id\":27147},{\"title\":\"PayPal Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Dark.png\",\"excerpt\":\"PayPal Checkout now with Smart Payment Buttons\\u2122, dynamically displays, PayPal, Venmo, PayPal Credit, or other local payment options in a single stack giving customers the choice to pay with their preferred option.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"69e6cba62ac4021df9e117cc3f716d07\",\"slug\":\"woocommerce-gateway-paypal-express-checkout\",\"id\":1597922},{\"title\":\"ShipStation Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Shipstation-Dark.png\",\"excerpt\":\"Fulfill all your Woo orders (and wherever else you sell) quickly and easily using ShipStation. Try it free for 30 days today!\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipstation-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"9de8640767ba64237808ed7f245a49bb\",\"slug\":\"woocommerce-shipstation-integration\",\"id\":18734},{\"title\":\"PayFast Payment Gateway\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Payfast-Dark-1.png\",\"excerpt\":\"Take payments on your WooCommerce store via PayFast (redirect method).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/payfast-payment-gateway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"557bf07293ad916f20c207c6c9cd15ff\",\"slug\":\"woocommerce-payfast-gateway\",\"id\":18596},{\"title\":\"Product Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-Add-Ons-Dark.png\",\"excerpt\":\"Offer add-ons like gift wrapping, special messages or other special options for your products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"147d0077e591e16db9d0d67daeb8c484\",\"slug\":\"woocommerce-product-addons\",\"id\":18618},{\"title\":\"USPS Shipping Method\",\"image\":\"\",\"excerpt\":\"Get shipping rates from the USPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/usps-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"83d1524e8f5f1913e58889f83d442c32\",\"slug\":\"woocommerce-shipping-usps\",\"id\":18657},{\"title\":\"Google Ads & Marketing by Kliken\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/02\\/GA-for-Woo-Logo-374x192px-qu3duk.png\",\"excerpt\":\"Get in front of shoppers and drive traffic to your store so you can grow your business with Smart Shopping Campaigns and free listings.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-ads-and-marketing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"bf66e173-a220-4da7-9512-b5728c20fc16\",\"slug\":\"kliken-marketing-for-google\",\"id\":3866145},{\"title\":\"Braintree for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/02\\/braintree-black-copy.png\",\"excerpt\":\"Accept PayPal, credit cards and debit cards with a single payment gateway solution \\u2014 PayPal Powered by Braintree.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-paypal-powered-by-braintree\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"27f010c8e34ca65b205ddec88ad14536\",\"slug\":\"woocommerce-gateway-paypal-powered-by-braintree\",\"id\":1489837},{\"title\":\"UPS Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/UPS-Shipping-Method-Dark.png\",\"excerpt\":\"Get shipping rates from the UPS API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ups-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8dae58502913bac0fbcdcaba515ea998\",\"slug\":\"woocommerce-shipping-ups\",\"id\":18665},{\"title\":\"WooCommerce Memberships\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/06\\/Thumbnail-Memberships-updated.png\",\"excerpt\":\"Give members access to restricted content or products, for a fee or for free.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-memberships\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$199.00\",\"hash\":\"9288e7609ad0b487b81ef6232efa5cfc\",\"slug\":\"woocommerce-memberships\",\"id\":958589},{\"title\":\"Table Rate Shipping\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Product-Table-Rate-Shipping-Dark.png\",\"excerpt\":\"Advanced, flexible shipping. Define multiple shipping rates based on location, price, weight, shipping class or item count.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/table-rate-shipping\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"3034ed8aff427b0f635fe4c86bbf008a\",\"slug\":\"woocommerce-table-rate-shipping\",\"id\":18718},{\"title\":\"Product Bundles\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-PB.png?v=1\",\"excerpt\":\"Offer personalized product bundles, bulk discount packages and assembled\\u00a0products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-bundles\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa2518b5-ab19-4b75-bde9-60ca51e20f28\",\"slug\":\"woocommerce-product-bundles\",\"id\":18716},{\"title\":\"Shipment Tracking\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Ship-Tracking-Dark-1.png\",\"excerpt\":\"Add shipment tracking information to your orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipment-tracking\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"1968e199038a8a001c9f9966fd06bf88\",\"slug\":\"woocommerce-shipment-tracking\",\"id\":18693},{\"title\":\"Checkout Field Editor\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Checkout-Field-Editor-Dark.png\",\"excerpt\":\"Optimize your checkout process by adding, removing or editing fields to suit your needs.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-field-editor\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"2b8029f0d7cdd1118f4d843eb3ab43ff\",\"slug\":\"woocommerce-checkout-field-editor\",\"id\":184594},{\"title\":\"WooCommerce Bookings\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Dark.png\",\"excerpt\":\"Allow customers to book appointments, make reservations or rent equipment without leaving your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/hotel\\/\",\"price\":\"$249.00\",\"hash\":\"911c438934af094c2b38d5560b9f50f3\",\"slug\":\"WooCommerce Bookings\",\"id\":390890},{\"title\":\"Multichannel for WooCommerce: Google, Amazon & eBay Integration\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/10\\/Woo-Multichannel-Extension-Store-Logo-new-colour-scheme.png\",\"excerpt\":\"Get the official Google, Amazon and eBay extension and create, sync and manage multichannel listings directly from WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-ebay-integration\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"e4000666-9275-4c71-8619-be61fb41c9f9\",\"slug\":\"woocommerce-amazon-ebay-integration\",\"id\":3545890},{\"title\":\"Authorize.Net\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/04\\/Thumbnail-Authorize.net-updated.png\",\"excerpt\":\"Authorize.Net gateway with support for pre-orders and subscriptions.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/authorize-net\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8b61524fe53add7fdd1a8d1b00b9327d\",\"slug\":\"woocommerce-gateway-authorize-net-cim\",\"id\":178481},{\"title\":\"Min\\/Max Quantities\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Min-Max-Qua-Dark.png\",\"excerpt\":\"Specify minimum and maximum allowed product quantities for orders to be completed.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/minmax-quantities\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"2b5188d90baecfb781a5aa2d6abb900a\",\"slug\":\"woocommerce-min-max-quantities\",\"id\":18616},{\"title\":\"WooCommerce Customer \\/ Order \\/ Coupon Export\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-Customer-Order-Coupon-Export-updated.png\",\"excerpt\":\"Export customers, orders, and coupons from WooCommerce manually or on an automated schedule.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/ordercustomer-csv-export\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"914de15813a903c767b55445608bf290\",\"slug\":\"woocommerce-customer-order-csv-export\",\"id\":18652},{\"title\":\"LiveChat for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2015\\/11\\/LC_woo_regular-zmiaym.png\",\"excerpt\":\"Live Chat and messaging platform for sales and support -- increase average order value and overall sales through live conversations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/livechat\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.livechat.com\\/livechat-for-ecommerce\\/?a=woocommerce&utm_source=woocommerce.com&utm_medium=integration&utm_campaign=woocommerce.com\",\"price\":\"$0.00\",\"hash\":\"5344cc1f-ed4a-4d00-beff-9d67f6d372f3\",\"slug\":\"livechat-woocommerce\",\"id\":1348888},{\"title\":\"FedEx Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/01\\/FedEx_Logo_Wallpaper.jpeg\",\"excerpt\":\"Get shipping rates from the FedEx API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/fedex-shipping-module\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1a48b598b47a81559baadef15e320f64\",\"slug\":\"woocommerce-shipping-fedex\",\"id\":18620},{\"title\":\"Product CSV Import Suite\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Product-CSV-Import-Dark.png\",\"excerpt\":\"Import, merge, and export products and variations to and from WooCommerce using a CSV file.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-csv-import-suite\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"7ac9b00a1fe980fb61d28ab54d167d0d\",\"slug\":\"woocommerce-product-csv-import-suite\",\"id\":18680},{\"title\":\"Follow-Ups\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Follow-Ups-Dark.png\",\"excerpt\":\"Automatically contact customers after purchase - be it everyone, your most loyal or your biggest spenders - and keep your store top-of-mind.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/follow-up-emails\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"05ece68fe94558e65278fe54d9ec84d2\",\"slug\":\"woocommerce-follow-up-emails\",\"id\":18686},{\"title\":\"Smart Coupons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/10\\/wc-product-smart-coupons.png\",\"excerpt\":\"Everything you need for discounts, coupons, credits, gift cards, product giveaways, offers, and promotions. Most popular and complete coupons plugin for WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/smart-coupons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demo.storeapps.org\\/?demo=sc\",\"price\":\"$99.00\",\"hash\":\"05c45f2aa466106a466de4402fff9dde\",\"slug\":\"woocommerce-smart-coupons\",\"id\":18729},{\"title\":\"Dynamic Pricing\",\"image\":\"\",\"excerpt\":\"Bulk discounts, role-based pricing and much more\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/dynamic-pricing\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"9a41775bb33843f52c93c922b0053986\",\"slug\":\"woocommerce-dynamic-pricing\",\"id\":18643},{\"title\":\"Product Vendors\",\"image\":\"\",\"excerpt\":\"Turn your store into a multi-vendor marketplace\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-vendors\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"a97d99fccd651bbdd728f4d67d492c31\",\"slug\":\"woocommerce-product-vendors\",\"id\":219982},{\"title\":\"WooCommerce Zapier\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/woocommerce-zapier-logo.png\",\"excerpt\":\"Integrate with 2000+ cloud apps and services today.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-zapier\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$59.00\",\"hash\":\"0782bdbe932c00f4978850268c6cfe40\",\"slug\":\"woocommerce-zapier\",\"id\":243589},{\"title\":\"Name Your Price\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/09\\/nyp-icon-dark-v83owf.png\",\"excerpt\":\"Allow customers to define the product price. Also useful for accepting user-set donations.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/name-your-price\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"31b4e11696cd99a3c0572975a84f1c08\",\"slug\":\"woocommerce-name-your-price\",\"id\":18738},{\"title\":\"WooCommerce Print Invoices & Packing lists\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/03\\/Thumbnail-Print-Invoices-Packing-lists-updated.png\",\"excerpt\":\"Generate invoices, packing slips, and pick lists for your WooCommerce orders.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/print-invoices-packing-lists\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"465de1126817cdfb42d97ebca7eea717\",\"slug\":\"woocommerce-pip\",\"id\":18666},{\"title\":\"WooCommerce Accommodation Bookings\",\"image\":\"\",\"excerpt\":\"Book accommodation using WooCommerce and the WooCommerce Bookings extension.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-accommodation-bookings\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"99b2a7a4af90b6cefd2a733b3b1f78e7\",\"slug\":\"woocommerce-accommodation-bookings\",\"id\":1412069},{\"title\":\"WooCommerce Brands\",\"image\":\"\",\"excerpt\":\"Create, assign and list brands for products, and allow customers to view by brand.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/brands\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"8a88c7cbd2f1e73636c331c7a86f818c\",\"slug\":\"woocommerce-brands\",\"id\":18737},{\"title\":\"Xero\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2012\\/08\\/xero2.png\",\"excerpt\":\"Save time with automated sync between WooCommerce and your Xero account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/xero\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"f0dd29d338d3c67cf6cee88eddf6869b\",\"slug\":\"woocommerce-xero\",\"id\":18733},{\"title\":\"Australia Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/australia-post.gif\",\"excerpt\":\"Get shipping rates for your WooCommerce store from the Australia Post API, which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/australia-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1dbd4dc6bd91a9cda1bd6b9e7a5e4f43\",\"slug\":\"woocommerce-shipping-australia-post\",\"id\":18622},{\"title\":\"Canada Post Shipping Method\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/canada-post.png\",\"excerpt\":\"Get shipping rates from the Canada Post Ratings API which handles both domestic and international parcels.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/canada-post-shipping-method\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ac029cdf3daba20b20c7b9be7dc00e0e\",\"slug\":\"woocommerce-shipping-canada-post\",\"id\":18623},{\"title\":\"Google Product Feed\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2011\\/11\\/logo-regular-lscryp.png\",\"excerpt\":\"Feed product data to Google Merchant Center for setting up Google product listings & product ads.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/google-product-feed\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d55b4f852872025741312839f142447e\",\"slug\":\"woocommerce-product-feeds\",\"id\":18619},{\"title\":\"Advanced Notifications\",\"image\":\"\",\"excerpt\":\"Easily setup \\\"new order\\\" and stock email notifications for multiple recipients of your choosing.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/advanced-notifications\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"112372c44b002fea2640bd6bfafbca27\",\"slug\":\"woocommerce-advanced-notifications\",\"id\":18740},{\"title\":\"WooCommerce Points and Rewards\",\"image\":\"\",\"excerpt\":\"Reward your customers for purchases and other actions with points which can be redeemed for discounts.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-points-and-rewards\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"1649b6cca5da8b923b01ca56b5cdd246\",\"slug\":\"woocommerce-points-and-rewards\",\"id\":210259},{\"title\":\"PayPal Payments Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Paypal-Payments-Pro-Dark.png\",\"excerpt\":\"Take credit card payments directly on your checkout using PayPal Pro.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/paypal-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6d23ba7f0e0198937c0029f9e865b40e\",\"slug\":\"woocommerce-gateway-paypal-pro\",\"id\":18594},{\"title\":\"AutomateWoo\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-AutomateWoo-Dark-1.png\",\"excerpt\":\"Powerful marketing automation for WooCommerce. AutomateWoo has the tools you need to grow your store and make more money.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/automatewoo\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"ba9299b8-1dba-4aa0-a313-28bc1755cb88\",\"slug\":\"automatewoo\",\"id\":4652610},{\"title\":\"Gravity Forms Product Add-ons\",\"image\":\"\",\"excerpt\":\"Powerful product add-ons, Gravity style\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/gravity-forms-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/gravity-forms\\/\",\"price\":\"$99.00\",\"hash\":\"a6ac0ab1a1536e3a357ccf24c0650ed0\",\"slug\":\"woocommerce-gravityforms-product-addons\",\"id\":18633},{\"title\":\"Composite Products\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CP.png?v=1\",\"excerpt\":\"Create product kit builders and custom product configurators using existing products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/composite-products\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"0343e0115bbcb97ccd98442b8326a0af\",\"slug\":\"woocommerce-composite-products\",\"id\":216836},{\"title\":\"WooCommerce Subscription Downloads\",\"image\":\"\",\"excerpt\":\"Offer additional downloads to your subscribers, via downloadable products listed in your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-subscription-downloads\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5be9e21c13953253e4406d2a700382ec\",\"slug\":\"woocommerce-subscription-downloads\",\"id\":420458},{\"title\":\"WooCommerce Pre-Orders\",\"image\":\"\",\"excerpt\":\"Allow customers to order products before they are available.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-pre-orders\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"b2dc75e7d55e6f5bbfaccb59830f66b7\",\"slug\":\"woocommerce-pre-orders\",\"id\":178477},{\"title\":\"WooCommerce AvaTax\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-Avalara-updated.png\",\"excerpt\":\"Get 100% accurate sales tax calculations and on time tax return filing. No more tracking sales tax rates, rules, or jurisdictional boundaries.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-avatax\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"57077a4b28ba71cacf692bcf4a1a7f60\",\"slug\":\"woocommerce-avatax\",\"id\":1389326},{\"title\":\"Royal Mail\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/04\\/royalmail.png\",\"excerpt\":\"Offer Royal Mail shipping rates to your customers\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/royal-mail\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"03839cca1a16c4488fcb669aeb91a056\",\"slug\":\"woocommerce-shipping-royalmail\",\"id\":182719},{\"title\":\"WooCommerce Additional Variation Images\",\"image\":\"\",\"excerpt\":\"Add gallery images per variation on variable products within WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-additional-variation-images\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/themes.woocommerce.com\\/storefront\\/product\\/woo-single-1\\/\",\"price\":\"$49.00\",\"hash\":\"c61dd6de57dcecb32bd7358866de4539\",\"slug\":\"woocommerce-additional-variation-images\",\"id\":477384},{\"title\":\"WooCommerce Paid Courses\",\"image\":\"\",\"excerpt\":\"Sell your online courses using the most popular eCommerce platform on the web \\u2013 WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-paid-courses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"bad2a02a063555b7e2bee59924690763\",\"slug\":\"woothemes-sensei\",\"id\":152116},{\"title\":\"Klarna Checkout\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2018\\/01\\/Partner_marketing_Klarna_Checkout_Black-1.png\",\"excerpt\":\"Klarna Checkout is a full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/klarna-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.krokedil.se\\/klarnacheckout\\/\",\"price\":\"$0.00\",\"hash\":\"90f8ce584e785fcd8c2d739fd4f40d78\",\"slug\":\"klarna-checkout-for-woocommerce\",\"id\":2754152},{\"title\":\"WooCommerce Deposits\",\"image\":\"\",\"excerpt\":\"Enable customers to pay for products using a deposit or a payment plan.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-deposits\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$179.00\",\"hash\":\"de192a6cf12c4fd803248da5db700762\",\"slug\":\"woocommerce-deposits\",\"id\":977087},{\"title\":\"Amazon S3 Storage\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/09\\/amazon.png\",\"excerpt\":\"Serve digital products via Amazon S3\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/amazon-s3-storage\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"473bf6f221b865eff165c97881b473bb\",\"slug\":\"woocommerce-amazon-s3-storage\",\"id\":18663},{\"title\":\"Cart Add-ons\",\"image\":\"\",\"excerpt\":\"A powerful tool for driving incremental and impulse purchases by customers once they are in the shopping cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/cart-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"3a8ef25334396206f5da4cf208adeda3\",\"slug\":\"woocommerce-cart-add-ons\",\"id\":18717},{\"title\":\"Shipping Multiple Addresses\",\"image\":\"\",\"excerpt\":\"Allow your customers to ship individual items in a single order to multiple addresses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/shipping-multiple-addresses\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"aa0eb6f777846d329952d5b891d6f8cc\",\"slug\":\"woocommerce-shipping-multiple-addresses\",\"id\":18741},{\"title\":\"Catalog Visibility Options\",\"image\":\"\",\"excerpt\":\"Transform WooCommerce into an online catalog by removing eCommerce functionality\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/catalog-visibility-options\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"12e791110365fdbb5865c8658907967e\",\"slug\":\"woocommerce-catalog-visibility-options\",\"id\":18648},{\"title\":\"Bulk Stock Management\",\"image\":\"\",\"excerpt\":\"Edit product and variation stock levels in bulk via this handy interface\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bulk-stock-management\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"02f4328d52f324ebe06a78eaaae7934f\",\"slug\":\"woocommerce-bulk-stock-management\",\"id\":18670},{\"title\":\"eWAY\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/eway-logo-3000-2000.jpg\",\"excerpt\":\"Take credit card payments securely via eWay (SG, MY, HK, AU, and NZ) keeping customers on your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eway\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"2c497769d98d025e0d340cd0b5ea5da1\",\"slug\":\"woocommerce-gateway-eway\",\"id\":18604},{\"title\":\"WooCommerce Email Customizer\",\"image\":\"\",\"excerpt\":\"Connect with your customers with each email you send by visually modifying your email templates via the WordPress Customizer.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-email-customizer\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"bd909fa97874d431f203b5336c7e8873\",\"slug\":\"woocommerce-email-customizer\",\"id\":853277},{\"title\":\"Force Sells\",\"image\":\"\",\"excerpt\":\"Force products to be added to the cart\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/force-sells\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"3ebddfc491ca168a4ea4800b893302b0\",\"slug\":\"woocommerce-force-sells\",\"id\":18678},{\"title\":\"WooCommerce Quick View\",\"image\":\"\",\"excerpt\":\"Show a quick-view button to view product details and add to cart via lightbox popup\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-quick-view\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"619c6e57ce72c49c4b57e15b06eddb65\",\"slug\":\"woocommerce-quick-view\",\"id\":187509},{\"title\":\"WooCommerce Purchase Order Gateway\",\"image\":\"\",\"excerpt\":\"Receive purchase orders via your WooCommerce-powered online store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gateway-purchase-order\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"573a92318244ece5facb449d63e74874\",\"slug\":\"woocommerce-gateway-purchase-order\",\"id\":478542},{\"title\":\"TaxJar\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/10\\/taxjar-logotype.png\",\"excerpt\":\"Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, reporting, and filing for your WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/taxjar\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"12072d8e-e933-4561-97b1-9db3c7eeed91\",\"slug\":\"taxjar-simplified-taxes-for-woocommerce\",\"id\":514914},{\"title\":\"Returns and Warranty Requests\",\"image\":\"\",\"excerpt\":\"Manage the RMA process, add warranties to products & let customers request & manage returns \\/ exchanges from their account.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/warranty-requests\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"9b4c41102e6b61ea5f558e16f9b63e25\",\"slug\":\"woocommerce-warranty\",\"id\":228315},{\"title\":\"Product Enquiry Form\",\"image\":\"\",\"excerpt\":\"Allow visitors to contact you directly from the product details page via a reCAPTCHA protected form to enquire about a product.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/product-enquiry-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"5a0f5d72519a8ffcc86669f042296937\",\"slug\":\"woocommerce-product-enquiry-form\",\"id\":18601},{\"title\":\"WooCommerce Box Office\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-BO-Dark.png\",\"excerpt\":\"Sell tickets for your next event, concert, function, fundraiser or conference directly on your own site\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-box-office\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"e704c9160de318216a8fa657404b9131\",\"slug\":\"woocommerce-box-office\",\"id\":1628717},{\"title\":\"Sequential Order Numbers Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/05\\/Thumbnail-Sequential-Order-Numbers-Pro-updated.png\",\"excerpt\":\"Tame your order numbers! Advanced & sequential order numbers with optional prefixes \\/ suffixes\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sequential-order-numbers-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"0b18a2816e016ba9988b93b1cd8fe766\",\"slug\":\"woocommerce-sequential-order-numbers-pro\",\"id\":18688},{\"title\":\"WooCommerce Order Barcodes\",\"image\":\"\",\"excerpt\":\"Generates a unique barcode for each order on your site - perfect for e-tickets, packing slips, reservations and a variety of other uses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-barcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"889835bb29ee3400923653e1e44a3779\",\"slug\":\"woocommerce-order-barcodes\",\"id\":391708},{\"title\":\"WooCommerce Checkout Add-Ons\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/07\\/Thumbnail-Checkout-Add-Ons-updated.png\",\"excerpt\":\"Highlight relevant products, offers like free shipping and other up-sells during checkout.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-checkout-add-ons\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"8fdca00b4000b7a8cc26371d0e470a8f\",\"slug\":\"woocommerce-checkout-add-ons\",\"id\":466854},{\"title\":\"Conditional Shipping and Payments\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/07\\/Logo-CSP.png?v=1\",\"excerpt\":\"Use conditional logic to restrict the shipping and payment options available on your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/conditional-shipping-and-payments\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"1f56ff002fa830b77017b0107505211a\",\"slug\":\"woocommerce-conditional-shipping-and-payments\",\"id\":680253},{\"title\":\"WooCommerce 360\\u00ba Image\",\"image\":\"\",\"excerpt\":\"An easy way to add a dynamic, controllable 360\\u00ba image rotation to your WooCommerce site, by adding a group of images to a product\\u2019s gallery.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-360-image\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"24eb2cfa3738a66bf3b2587876668cd2\",\"slug\":\"woocommerce-360-image\",\"id\":512186},{\"title\":\"WooCommerce Photography\",\"image\":\"\",\"excerpt\":\"Sell photos in the blink of an eye using this simple as dragging & dropping interface.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-photography\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"ee76e8b9daf1d97ca4d3874cc9e35687\",\"slug\":\"woocommerce-photography\",\"id\":583602},{\"title\":\"WooCommerce Google Analytics Pro\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2016\\/01\\/Thumbnail-GAPro-updated.png\",\"excerpt\":\"Add advanced event tracking and enhanced eCommerce tracking to your WooCommerce site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-google-analytics-pro\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"d8aed8b7306b509eec1589e59abe319f\",\"slug\":\"woocommerce-google-analytics-pro\",\"id\":1312497},{\"title\":\"WooCommerce Order Status Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2015\\/02\\/Thumbnail-Order-Status-Manager-updated.png\",\"excerpt\":\"Create, edit, and delete completely custom order statuses and integrate them seamlessly into your order management flow.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"51fd9ab45394b4cad5a0ebf58d012342\",\"slug\":\"woocommerce-order-status-manager\",\"id\":588398},{\"title\":\"Software Add-on\",\"image\":\"\",\"excerpt\":\"Sell License Keys for Software\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/software-add-on\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$129.00\",\"hash\":\"79f6dbfe1f1d3a56a86f0509b6d6b04b\",\"slug\":\"woocommerce-software-add-on\",\"id\":18683},{\"title\":\"WooCommerce Bookings Availability\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2020\\/06\\/Logo-Woo-Bookings-Aval-Dark.png\",\"excerpt\":\"Sell more bookings by presenting a calendar or schedule of available slots in a page or post.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/bookings-availability\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"30770d2a-e392-4e82-baaa-76cfc7d02ae3\",\"slug\":\"woocommerce-bookings-availability\",\"id\":4228225},{\"title\":\"WooCommerce Blocks\",\"image\":\"\",\"excerpt\":\"WooCommerce Blocks offers a range of Gutenberg blocks you can use to build and customise your site.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-gutenberg-products-block\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c2e9f13a-f90c-4ffe-a8a5-b432399ec263\",\"slug\":\"woo-gutenberg-products-block\",\"id\":3076677},{\"title\":\"WooCommerce Products Compare\",\"image\":\"\",\"excerpt\":\"WooCommerce Products Compare will allow your potential customers to easily compare products within your store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-products-compare\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"c3ba0a4a3199a0cc7a6112eb24414548\",\"slug\":\"woocommerce-products-compare\",\"id\":853117},{\"title\":\"WooCommerce Store Catalog PDF Download\",\"image\":\"\",\"excerpt\":\"Offer your customers a PDF download of your product catalog, generated by WooCommerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-store-catalog-pdf-download\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$49.00\",\"hash\":\"79ca7aadafe706364e2d738b7c1090c4\",\"slug\":\"woocommerce-store-catalog-pdf-download\",\"id\":675790},{\"title\":\"First Data\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/02\\/Thumbnail-FirstData-updated.png\",\"excerpt\":\"FirstData gateway for WooCommerce\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/firstdata\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"eb3e32663ec0810592eaf0d097796230\",\"slug\":\"woocommerce-gateway-firstdata\",\"id\":18645},{\"title\":\"WooCommerce One Page Checkout\",\"image\":\"\",\"excerpt\":\"Create special pages where customers can choose products, checkout & pay all on the one page.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-one-page-checkout\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"c9ba8f8352cd71b5508af5161268619a\",\"slug\":\"woocommerce-one-page-checkout\",\"id\":527886},{\"title\":\"WooCommerce Product Search\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2014\\/10\\/woocommerce-product-search-product-image-1870x960-1-jvsljj.png\",\"excerpt\":\"The perfect search engine helps customers to find and buy products quickly \\u2013 essential for every WooCommerce store.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-product-search\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/demo.itthinx.com\\/wps\\/\",\"price\":\"$49.00\",\"hash\":\"c84cc8ca16ddac3408e6b6c5871133a8\",\"slug\":\"woocommerce-product-search\",\"id\":512174},{\"title\":\"WooSlider\",\"image\":\"\",\"excerpt\":\"WooSlider is the ultimate responsive slideshow WordPress slider plugin\\r\\n\\r\\n\\u00a0\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/wooslider\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/www.wooslider.com\\/\",\"price\":\"$49.00\",\"hash\":\"209d98f3ccde6cc3de7e8732a2b20b6a\",\"slug\":\"wooslider\",\"id\":46506},{\"title\":\"WooCommerce Social Login\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/08\\/Thumbnail-Social-Login-updated.png\",\"excerpt\":\"Enable Social Login for seamless checkout and account creation.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-social-login\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"http:\\/\\/demos.skyverge.com\\/woocommerce-social-login\\/\",\"price\":\"$79.00\",\"hash\":\"b231cd6367a79cc8a53b7d992d77525d\",\"slug\":\"woocommerce-social-login\",\"id\":473617},{\"title\":\"QuickBooks Sync for WooCommerce\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2019\\/04\\/woocommerce-com-logo-1-hyhzbh.png\",\"excerpt\":\"Automatic two-way sync for orders, customers, products, inventory and more between WooCommerce and QuickBooks (Online, Desktop, or POS).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/quickbooks-sync-for-woocommerce\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"c5e32e20-7c1f-4585-8b15-d930c2d842ac\",\"slug\":\"myworks-woo-sync-for-quickbooks-online\",\"id\":4065824},{\"title\":\"Variation Swatches and Photos\",\"image\":\"\",\"excerpt\":\"Show color and image swatches instead of dropdowns for variable products.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/variation-swatches-and-photos\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"https:\\/\\/www.elementstark.com\\/woocommerce-extension-demos\\/product-category\\/swatches-and-photos\\/\",\"price\":\"$99.00\",\"hash\":\"37bea8d549df279c8278878d081b062f\",\"slug\":\"woocommerce-variation-swatches-and-photos\",\"id\":18697},{\"title\":\"WooCommerce Order Status Control\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2014\\/06\\/Thumbnail-Order-Status-Control-updated.png\",\"excerpt\":\"Use this extension to automatically change the order status to \\\"completed\\\" after successful payment.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-order-status-control\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"32400e509c7c36dcc1cd368e8267d981\",\"slug\":\"woocommerce-order-status-control\",\"id\":439037},{\"title\":\"Opayo (Formerly SagePay)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2011\\/10\\/Opayo_logo_RGB.png\",\"excerpt\":\"Take payments on your WooCommerce store via Opayo (formally SagePay).\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/sage-pay-form\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$79.00\",\"hash\":\"6bc0cca47d0274d8ef9b164f6fbec1cc\",\"slug\":\"woocommerce-gateway-sagepay-form\",\"id\":18599},{\"title\":\"EU VAT Number\",\"image\":\"\",\"excerpt\":\"Collect VAT numbers at checkout and remove the VAT charge for eligible EU businesses.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/eu-vat-number\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$29.00\",\"hash\":\"d2720c4b4bb8d6908e530355b7a2d734\",\"slug\":\"woocommerce-eu-vat-number\",\"id\":18592},{\"title\":\"Coupon Shortcodes\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/woocommerce_uploads\\/2013\\/09\\/woocommerce-coupon-shortcodes-product-image-1870x960-1-vc5gux.png\",\"excerpt\":\"Show coupon discount info using shortcodes. Allows to render coupon information and content conditionally, based on the validity of coupons.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/coupon-shortcodes\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"ac5d9d51-70b2-4d8f-8b89-24200eea1394\",\"slug\":\"woocommerce-coupon-shortcodes\",\"id\":244762},{\"title\":\"QuickBooks Commerce (formerly TradeGecko)\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2013\\/09\\/qbo-mark.png\",\"excerpt\":\"Get a wholesale and multichannel inventory & order management platform for your WooCommerce store with QuickBooks Commerce.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tradegecko\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"21da7811f7fc1f13ee19daa7415f0ff3\",\"slug\":\"woocommerce-tradegecko\",\"id\":245960},{\"title\":\"Jilt\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2017\\/12\\/Thumbnail-Jilt-updated.png\",\"excerpt\":\"All-in-one email marketing platform built for WooCommerce stores. Send newsletters, abandoned cart reminders, win-backs, welcome automations, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/jilt\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$0.00\",\"hash\":\"b53aafb64dca33835e41ee06de7e9816\",\"slug\":\"jilt-for-woocommerce\",\"id\":2754876},{\"title\":\"WooCommerce Tab Manager\",\"image\":\"https:\\/\\/woocommerce.com\\/wp-content\\/uploads\\/2012\\/11\\/Thumbnail-Tab-Manager-updated.png\",\"excerpt\":\"Gives you complete control over your product page tabs, create local and global tabs using a visual drag-and-drop interface, and more.\",\"link\":\"https:\\/\\/woocommerce.com\\/products\\/woocommerce-tab-manager\\/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\",\"demo_url\":\"\",\"price\":\"$99.00\",\"hash\":\"89a9ac74850855cfe772b4b4ee1e31e0\",\"slug\":\"woocommerce-tab-manager\",\"id\":132195}]}\";s:7:\"headers\";O:25:\"Requests_Response_Headers\":1:{s:7:\"\0*\0data\";a:18:{s:6:\"server\";a:1:{i:0;s:5:\"nginx\";}s:4:\"date\";a:1:{i:0;s:29:\"Tue, 23 Feb 2021 22:33:23 GMT\";}s:12:\"content-type\";a:1:{i:0;s:31:\"application/json; charset=UTF-8\";}s:14:\"content-length\";a:1:{i:0;s:5:\"11538\";}s:12:\"x-robots-tag\";a:1:{i:0;s:7:\"noindex\";}s:4:\"link\";a:1:{i:0;s:60:\"; rel=\"https://api.w.org/\"\";}s:22:\"x-content-type-options\";a:1:{i:0;s:7:\"nosniff\";}s:29:\"access-control-expose-headers\";a:1:{i:0;s:33:\"X-WP-Total, X-WP-TotalPages, Link\";}s:28:\"access-control-allow-headers\";a:1:{i:0;s:73:\"Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type\";}s:13:\"x-wccom-cache\";a:1:{i:0;s:3:\"HIT\";}s:13:\"cache-control\";a:1:{i:0;s:10:\"max-age=60\";}s:5:\"allow\";a:1:{i:0;s:3:\"GET\";}s:16:\"content-encoding\";a:1:{i:0;s:4:\"gzip\";}s:4:\"x-rq\";a:1:{i:0;s:15:\"gru1 88 94 3130\";}s:3:\"age\";a:1:{i:0;s:2:\"44\";}s:7:\"x-cache\";a:1:{i:0;s:3:\"hit\";}s:4:\"vary\";a:1:{i:0;s:23:\"Accept-Encoding, Origin\";}s:13:\"accept-ranges\";a:1:{i:0;s:5:\"bytes\";}}}s:11:\"status_code\";i:200;s:16:\"protocol_version\";d:1.1;s:7:\"success\";b:1;s:9:\"redirects\";i:0;s:3:\"url\";s:59:\"https://woocommerce.com/wp-json/wccom-extensions/1.0/search\";s:7:\"history\";a:0:{}s:7:\"cookies\";O:19:\"Requests_Cookie_Jar\":1:{s:10:\"\0*\0cookies\";a:0:{}}}s:11:\"\0*\0filename\";N;s:4:\"data\";N;s:7:\"headers\";N;s:6:\"status\";N;}}', 'no'); +INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES +(675, '_transient_timeout_orders-all-statuses', '1614724404', 'no'), +(676, '_transient_orders-all-statuses', 'a:2:{s:7:\"version\";s:10:\"1614119580\";s:5:\"value\";a:1:{i:0;s:13:\"wc-processing\";}}', 'no'), +(677, '_transient_timeout_wc_onboarding_themes', '1614206004', 'no'), +(678, '_transient_wc_onboarding_themes', 'a:27:{s:12:\"twentytwenty\";a:6:{s:4:\"slug\";s:12:\"twentytwenty\";s:5:\"title\";s:13:\"Twenty Twenty\";s:5:\"price\";s:4:\"0.00\";s:12:\"is_installed\";b:1;s:5:\"image\";s:67:\"http://wordpress-test/wp-content/themes/twentytwenty/screenshot.png\";s:23:\"has_woocommerce_support\";b:1;}s:10:\"storefront\";a:11:{s:5:\"title\";s:10:\"Storefront\";s:5:\"image\";s:77:\"https://woocommerce.com/wp-content/themes/woo/images/storefront/feature-1.jpg\";s:7:\"excerpt\";s:161:\"Storefront is an intuitive & flexible, free theme offering deep integration with WooCommerce.\r\n\r\nIt\'s the perfect platform for your next WooCommerce project.\";s:4:\"link\";s:103:\"https://woocommerce.com/products/storefront/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:42:\"https://themes.woocommerce.com/storefront/\";s:5:\"price\";s:9:\"$0.00\";s:4:\"hash\";s:32:\"5714dad8f8d0b930bd6cc9c99657b930\";s:4:\"slug\";s:10:\"storefront\";s:2:\"id\";i:565154;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:8:\"overline\";a:11:{s:5:\"title\";s:8:\"Overline\";s:5:\"image\";s:63:\"https://woocommerce.com/wp-content/uploads/2020/11/overline.jpg\";s:7:\"excerpt\";s:171:\"Overline is designed for the new generation of beauty brands and influencers opening their own e-commerce shops. Custom Gutenberg elements allow for increased flexibility.\";s:4:\"link\";s:101:\"https://woocommerce.com/products/overline/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:32:\"https://overline.fuelthemes.net/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"6eab91f2-ca09-4f7e-9022-df55fd8540a9\";s:4:\"slug\";s:8:\"overline\";s:2:\"id\";i:7320744;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:6:\"agency\";a:11:{s:5:\"title\";s:6:\"Agency\";s:5:\"image\";s:70:\"https://woocommerce.com/wp-content/uploads/2020/10/agency-featured.jpg\";s:7:\"excerpt\";s:134:\"Agency is a Gutenberg and WooCommerce optimized WordPress theme for marketing, advertising, and creative agencies. Sell your services!\";s:4:\"link\";s:99:\"https://woocommerce.com/products/agency/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:38:\"https://organicthemes.com/demo/agency/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"4a3a3a22-a5f0-4fa4-8c09-4f37575602ef\";s:4:\"slug\";s:6:\"agency\";s:2:\"id\";i:6674855;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:6:\"rhodes\";a:11:{s:5:\"title\";s:6:\"Rhodes\";s:5:\"image\";s:66:\"https://woocommerce.com/wp-content/uploads/2020/09/rhodes-home.jpg\";s:7:\"excerpt\";s:193:\"The perfect WooCommerce theme for retailers. Whether you\'re selling high-street fashion, beauty products, or home accessories, Rhodes will just stand out of the way letting your products shine.\";s:4:\"link\";s:99:\"https://woocommerce.com/products/rhodes/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:34:\"https://www.cssigniter.com/rhodes/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"b95c0103-23b9-43f3-af49-ee7eaa35e49b\";s:4:\"slug\";s:6:\"rhodes\";s:2:\"id\";i:6509339;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:11:\"restoration\";a:11:{s:5:\"title\";s:11:\"Restoration\";s:5:\"image\";s:78:\"https://woocommerce.com/wp-content/uploads/2020/09/restoration-woocommerce.jpg\";s:7:\"excerpt\";s:90:\"An elegant and sophisticated mobile-first, Gutenberg-powered theme for WooCommerce stores.\";s:4:\"link\";s:104:\"https://woocommerce.com/products/restoration/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:35:\"https://restoration.fuelthemes.net/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"e793e6af-f338-4e92-b268-e0576ddb137b\";s:4:\"slug\";s:11:\"restoration\";s:2:\"id\";i:6454820;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"matthew\";a:11:{s:5:\"title\";s:7:\"Matthew\";s:5:\"image\";s:71:\"https://woocommerce.com/wp-content/uploads/2020/06/screenshot.png?w=620\";s:7:\"excerpt\";s:145:\"Matthew is a Gutenberg-powered WooCommerce theme designed for building a professional online store so that you can sell goods or services online.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/matthew/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:38:\"https://demo.themesharbor.com/matthew/\";s:5:\"price\";s:11:\"$129.00\";s:4:\"hash\";s:36:\"b3983408-c4f6-4751-8bd7-ae65ae34cf3b\";s:4:\"slug\";s:7:\"matthew\";s:2:\"id\";i:6214538;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:11:\"fifthavenue\";a:11:{s:5:\"title\";s:12:\"Fifth Avenue\";s:5:\"image\";s:78:\"https://woocommerce.com/wp-content/uploads/2020/06/fifthavenue-woocommerce.jpg\";s:7:\"excerpt\";s:103:\"Beautiful Gutenberg powered WooCommerce theme designed to be easily customized for all types of stores.\";s:4:\"link\";s:105:\"https://woocommerce.com/products/fifth-avenue/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:35:\"https://fifthavenue.fuelthemes.net/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"9e093a9f-3d49-4fcd-bec7-c87b097d9df8\";s:4:\"slug\";s:11:\"fifthavenue\";s:2:\"id\";i:5989481;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"artisan\";a:11:{s:5:\"title\";s:7:\"Artisan\";s:5:\"image\";s:71:\"https://woocommerce.com/wp-content/uploads/2020/03/artisan-featured.jpg\";s:7:\"excerpt\";s:79:\"Sell your hand-crafted products online using the Artisan Theme for WooCommerce.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/artisan/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:39:\"https://organicthemes.com/demo/artisan/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"64529812-81f6-4efd-9686-ecb34e527421\";s:4:\"slug\";s:7:\"artisan\";s:2:\"id\";i:5576887;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"threads\";a:11:{s:5:\"title\";s:7:\"Threads\";s:5:\"image\";s:75:\"https://woocommerce.com/wp-content/uploads/2019/08/threads-home-cropped.jpg\";s:7:\"excerpt\";s:79:\"Create a stunning website for your apparel brand using Threads for WooCommerce.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/threads/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:39:\"https://organicthemes.com/demo/threads/\";s:5:\"price\";s:10:\"$79.00\";s:4:\"hash\";s:36:\"7ca579a6-6aaf-498c-9ee7-e15280ace9e9\";s:4:\"slug\";s:7:\"threads\";s:2:\"id\";i:4663191;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:10:\"block-shop\";a:11:{s:5:\"title\";s:10:\"Block Shop\";s:5:\"image\";s:79:\"https://woocommerce.com/wp-content/uploads/2019/08/block-shop-theme-preview.jpg\";s:7:\"excerpt\";s:81:\"A hassle-free Block-Editor-Era theme for your next WooCommerce project.\r\n\r\n \";s:4:\"link\";s:103:\"https://woocommerce.com/products/block-shop/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:34:\"https://blockshop.wp-theme.design/\";s:5:\"price\";s:10:\"$59.00\";s:4:\"hash\";s:36:\"21fa433c-6c31-4be7-83ab-8d2cc8986130\";s:4:\"slug\";s:10:\"block-shop\";s:2:\"id\";i:4660093;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:6:\"bistro\";a:11:{s:5:\"title\";s:6:\"Bistro\";s:5:\"image\";s:61:\"https://woocommerce.com/wp-content/uploads/2016/07/bistro.png\";s:7:\"excerpt\";s:174:\"Bistro is a Storefront child theme designed for stores selling organic goods and other consumables. It features a friendly and warm design that lends itself to this industry.\";s:4:\"link\";s:99:\"https://woocommerce.com/products/bistro/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:37:\"https://themes.woocommerce.com/bistro\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"58e753f91fddf40abe8ebe4486f8c378\";s:4:\"slug\";s:6:\"bistro\";s:2:\"id\";i:1822936;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:10:\"stationery\";a:11:{s:5:\"title\";s:10:\"Stationery\";s:5:\"image\";s:65:\"https://woocommerce.com/wp-content/uploads/2016/04/stationery.jpg\";s:7:\"excerpt\";s:186:\"Stationery is a Storefront child theme designed for stores selling office supplies and/or arts & crafts. The design has subtle tactile decorations while also being clean and elegant.\";s:4:\"link\";s:103:\"https://woocommerce.com/products/stationery/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:42:\"https://themes.woocommerce.com/stationery/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"b939225b8b8ccdc7b14ffb6d7eab2ac2\";s:4:\"slug\";s:10:\"stationery\";s:2:\"id\";i:1629126;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"petshop\";a:11:{s:5:\"title\";s:7:\"Petshop\";s:5:\"image\";s:62:\"https://woocommerce.com/wp-content/uploads/2016/03/petshop.png\";s:7:\"excerpt\";s:181:\"Petshop is a Storefront child theme designed for stores selling products in the pet industry. The design is organic and friendly, featuring many details that point to pet ownership.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/petshop/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:39:\"https://themes.woocommerce.com/petshop/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"8060743c9031974326850f539aba5196\";s:4:\"slug\";s:7:\"petshop\";s:2:\"id\";i:1587689;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:5:\"hotel\";a:11:{s:5:\"title\";s:5:\"Hotel\";s:5:\"image\";s:69:\"https://woocommerce.com/wp-content/uploads/2016/03/hotel-featured.jpg\";s:7:\"excerpt\";s:246:\"Hotel is designed for businesses selling time, services and accommodation, offering unique integration with WooCommerce Bookings and Accommodation Bookings. The design is bold yet simple, allowing your content and imagery to do all the talking.\";s:4:\"link\";s:98:\"https://woocommerce.com/products/hotel/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:37:\"https://themes.woocommerce.com/hotel/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"0b0df891aa46f289f4e49bae2389bb04\";s:4:\"slug\";s:5:\"hotel\";s:2:\"id\";i:1554532;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:8:\"bookshop\";a:11:{s:5:\"title\";s:8:\"Bookshop\";s:5:\"image\";s:63:\"https://woocommerce.com/wp-content/uploads/2016/02/featured.png\";s:7:\"excerpt\";s:183:\"Bookshop comes with a unique homepage layout that prominently displays product categories and a variety of products in an arrangement that is popular with bookstores and collectibles.\";s:4:\"link\";s:101:\"https://woocommerce.com/products/bookshop/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:40:\"https://themes.woocommerce.com/bookshop/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"9fe861227e3e82fde8fe5d7e8cc3340e\";s:4:\"slug\";s:8:\"bookshop\";s:2:\"id\";i:1508713;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:6:\"arcade\";a:11:{s:5:\"title\";s:6:\"Arcade\";s:5:\"image\";s:61:\"https://woocommerce.com/wp-content/uploads/2016/01/arcade.png\";s:7:\"excerpt\";s:216:\"Upgrade your video game shops look and feel with Arcade. It\'s bold and modern design will engage visitors and the unique homepage layout will present them with a variety of products as soon as they hit your homepage.\";s:4:\"link\";s:99:\"https://woocommerce.com/products/arcade/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:38:\"https://themes.woocommerce.com/arcade/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"5af09d4e590eec977c6b9519b517f479\";s:4:\"slug\";s:6:\"arcade\";s:2:\"id\";i:1418260;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:9:\"homestore\";a:11:{s:5:\"title\";s:9:\"Homestore\";s:5:\"image\";s:64:\"https://woocommerce.com/wp-content/uploads/2015/12/homestore.jpg\";s:7:\"excerpt\";s:166:\"Give your Department Store a classic look with Homestore. Its clean and efficient design will work well whether you\'re a boutique independent or a high street giant.\";s:4:\"link\";s:102:\"https://woocommerce.com/products/homestore/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:41:\"https://themes.woocommerce.com/homestore/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"d79fe7a1beba26523aafa6ce6d3e1e85\";s:4:\"slug\";s:9:\"homestore\";s:2:\"id\";i:1365559;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:8:\"pharmacy\";a:11:{s:5:\"title\";s:8:\"Pharmacy\";s:5:\"image\";s:63:\"https://woocommerce.com/wp-content/uploads/2015/12/pharmacy.jpg\";s:7:\"excerpt\";s:235:\"Give your health store a professional, trust-worthy design with the Pharmacy Storefront Child Theme. Built upon our rock solid Storefront Parent theme you\'ll also enjoy reliable integration with current and future WooCommerce releases.\";s:4:\"link\";s:101:\"https://woocommerce.com/products/pharmacy/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:40:\"https://themes.woocommerce.com/pharmacy/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"ebeff3c0f89cd3169fb6b3e7e137e513\";s:4:\"slug\";s:8:\"pharmacy\";s:2:\"id\";i:1365557;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"toyshop\";a:11:{s:5:\"title\";s:7:\"ToyShop\";s:5:\"image\";s:62:\"https://woocommerce.com/wp-content/uploads/2015/09/toyshop.jpg\";s:7:\"excerpt\";s:269:\"Add some fun to your store with ToyShop. The engaging and colorful design of ToyShop makes it a perfect child theme or any store that sells exciting products that are aimed at customers that like to have fun. The outdoorsy style would even be perfect for a flower shop.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/toyshop/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:39:\"https://themes.woocommerce.com/toyshop/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"3e2520021b41ee49a55b93362aaced98\";s:4:\"slug\";s:7:\"toyshop\";s:2:\"id\";i:1230716;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:6:\"outlet\";a:11:{s:5:\"title\";s:6:\"Outlet\";s:5:\"image\";s:61:\"https://woocommerce.com/wp-content/uploads/2015/09/outlet.jpg\";s:7:\"excerpt\";s:221:\"Overclock your tech store with Outlet! Whether you sell boutique iPad jewellery or the nuts and bolts of hardware itself, Outlet will give your shop a stylish look and feel while enjoying the stability of Storefront core.\";s:4:\"link\";s:99:\"https://woocommerce.com/products/outlet/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:38:\"https://themes.woocommerce.com/outlet/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"4c311cb3a3131570946b8799715a0991\";s:4:\"slug\";s:6:\"outlet\";s:2:\"id\";i:1212805;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:7:\"proshop\";a:11:{s:5:\"title\";s:7:\"ProShop\";s:5:\"image\";s:62:\"https://woocommerce.com/wp-content/uploads/2015/06/proshop.jpg\";s:7:\"excerpt\";s:176:\"Unlock the true potential of your sports clothing and equipment store with ProShop! It\'s metropolitan design provides an active aesthetic giving your store oodles of character.\";s:4:\"link\";s:100:\"https://woocommerce.com/products/proshop/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:39:\"https://themes.woocommerce.com/proshop/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"1d51b8633bbd1782dc17fce15f8bd2af\";s:4:\"slug\";s:7:\"proshop\";s:2:\"id\";i:1000757;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:8:\"galleria\";a:11:{s:5:\"title\";s:8:\"Galleria\";s:5:\"image\";s:68:\"https://woocommerce.com/wp-content/uploads/2015/05/galleria-hero.png\";s:7:\"excerpt\";s:162:\"Galleria is a Storefront child theme perfect for fashion and design stores. Stylish and minimalist, it gives sites a classy look and keeps products center stage.\";s:4:\"link\";s:101:\"https://woocommerce.com/products/galleria/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:40:\"https://themes.woocommerce.com/galleria/\";s:5:\"price\";s:10:\"$39.00\";s:4:\"hash\";s:32:\"2429c1dde521031cd053886b15844bbf\";s:4:\"slug\";s:8:\"galleria\";s:2:\"id\";i:887931;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:4:\"deli\";a:11:{s:5:\"title\";s:4:\"Deli\";s:5:\"image\";s:59:\"https://woocommerce.com/wp-content/uploads/2015/03/deli.jpg\";s:7:\"excerpt\";s:135:\"Deli is a Storefront child theme featuring a texturised, earthy design, perfect for stores selling natural, organic or hand made goods.\";s:4:\"link\";s:97:\"https://woocommerce.com/products/deli/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:36:\"https://themes.woocommerce.com/deli/\";s:5:\"price\";s:9:\"$0.00\";s:4:\"hash\";s:32:\"83c6db94c8ebf9da56b59fb97f724e88\";s:4:\"slug\";s:4:\"deli\";s:2:\"id\";i:784823;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:8:\"boutique\";a:11:{s:5:\"title\";s:8:\"Boutique\";s:5:\"image\";s:63:\"https://woocommerce.com/wp-content/uploads/2015/01/boutique.png\";s:7:\"excerpt\";s:168:\"Boutique is a simple, traditionally designed Storefront child theme, ideal for small stores or boutiques. Add your logo, create a unique color scheme and start selling!\";s:4:\"link\";s:101:\"https://woocommerce.com/products/boutique/?utm_source=product&utm_medium=upsell&utm_campaign=wcaddons\";s:8:\"demo_url\";s:40:\"https://themes.woocommerce.com/boutique/\";s:5:\"price\";s:9:\"$0.00\";s:4:\"hash\";s:32:\"71815288e266d58031727d48d6deee25\";s:4:\"slug\";s:8:\"boutique\";s:2:\"id\";i:605777;s:12:\"is_installed\";b:0;s:23:\"has_woocommerce_support\";b:1;}s:14:\"twentynineteen\";a:6:{s:4:\"slug\";s:14:\"twentynineteen\";s:5:\"title\";s:15:\"Twenty Nineteen\";s:5:\"price\";s:4:\"0.00\";s:12:\"is_installed\";b:1;s:5:\"image\";s:69:\"http://wordpress-test/wp-content/themes/twentynineteen/screenshot.png\";s:23:\"has_woocommerce_support\";b:0;}s:15:\"twentytwentyone\";a:6:{s:4:\"slug\";s:15:\"twentytwentyone\";s:5:\"title\";s:17:\"Twenty Twenty-One\";s:5:\"price\";s:4:\"0.00\";s:12:\"is_installed\";b:1;s:5:\"image\";s:70:\"http://wordpress-test/wp-content/themes/twentytwentyone/screenshot.png\";s:23:\"has_woocommerce_support\";b:0;}}', 'no'), +(679, '_transient_timeout_wc_shipping_method_count', '1616711615', 'no'), +(680, '_transient_wc_shipping_method_count', 'a:2:{s:7:\"version\";s:10:\"1606246396\";s:5:\"value\";i:0;}', 'no'); -- -------------------------------------------------------- @@ -1952,12 +1984,12 @@ INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALU (13, 1, 'wp_user_level', '10'), (14, 1, 'dismissed_wp_pointers', ''), (15, 1, 'show_welcome_panel', '1'), -(16, 1, 'session_tokens', 'a:2:{s:64:\"e29f8b1b5d44047c0f2468baf00a54b66d2755bdd9ee1d6de756423b4583dca1\";a:4:{s:10:\"expiration\";i:1611702445;s:2:\"ip\";s:10:\"172.19.0.3\";s:2:\"ua\";s:112:\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/87.0.4280.66 Safari/537.36\";s:5:\"login\";i:1611529645;}s:64:\"cf19aafdf8d972dae764f38f43be6a62ec9d3d847480962b637fb29d3f7cf01e\";a:4:{s:10:\"expiration\";i:1611762965;s:2:\"ip\";s:10:\"172.19.0.1\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15\";s:5:\"login\";i:1611590165;}}'), +(16, 1, 'session_tokens', 'a:1:{s:64:\"b047c8af41c23e111e5146f7019caa8e6c317c2456ab84ed0f1b3a0c001d1091\";a:4:{s:10:\"expiration\";i:1614292380;s:2:\"ip\";s:10:\"172.19.0.4\";s:2:\"ua\";s:104:\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36\";s:5:\"login\";i:1614119580;}}'), (17, 1, 'wp_user-settings', 'libraryContent=browse'), (18, 1, 'wp_user-settings-time', '1611590166'), (19, 1, 'wp_dashboard_quick_press_last_post_id', '13'), (20, 1, 'community-events-location', 'a:1:{s:2:\"ip\";s:10:\"172.19.0.0\";}'), -(21, 1, 'wc_last_active', '1611532800'), +(21, 1, 'wc_last_active', '1614038400'), (26, 1, '_woocommerce_tracks_anon_id', 'woo:/8rqM33Lc8PDnD7z6nS4ROEC'), (28, 1, 'last_update', '1610552212'), (29, 1, 'billing_first_name', 'João'), @@ -2061,7 +2093,7 @@ INSERT INTO `wp_wc_admin_notes` (`note_id`, `name`, `type`, `locale`, `title`, ` (19, 'wcpay-promo-2020-12', 'marketing', 'en_US', 'Get 50% off transaction fees with WooCommerce Payments', 'Keep more of your hard-earned cash by adding WooCommerce Payments to your store. Lock in a discounted rate of 1.5% + $0.15 for $25,000 of payments (or three months, whichever comes first). Limited time offer – don’t miss out!

By clicking \"Install now,\" you agree to our promotional Terms of Service.', 'info', '{}', 'pending', 'woocommerce.com', '2021-01-25 18:06:14', NULL, 0, 'plain', '', 0), (20, 'wcpay-subscriptions-2020-12', 'marketing', 'en_US', 'Manage payments from your store\'s dashboard', 'Securely accept cards and manage transactions right from your dashboard with WooCommerce Payments! Zero setup fees or monthly fees. Just pay-as-you-go, starting at just 2.9% + $0.30 per transaction for U.S.-issued cards.

By clicking \"Install now,\" you agree to our Terms of Service.', 'info', '{}', 'pending', 'woocommerce.com', '2021-01-25 18:06:15', NULL, 0, 'plain', '', 0), (21, 'your-first-product', 'info', 'en_US', 'Your first product', 'That\'s huge! You\'re well on your way to building a successful online store — now it’s time to think about how you\'ll fulfill your orders.

Read our shipping guide to learn best practices and options for putting together your shipping strategy. And for WooCommerce stores in the United States, you can print discounted shipping labels via USPS with WooCommerce Shipping.', 'info', '{}', 'pending', 'woocommerce.com', '2021-01-25 18:06:15', NULL, 0, 'plain', '', 0), -(22, 'wc-update-db-reminder', 'update', 'en_US', 'WooCommerce database update required', 'WooCommerce has been updated! To keep things running smoothly, we have to update your database to the newest version. The database update process runs in the background and may take a little while, so please be patient. Advanced users can alternatively update via WP CLI.', 'info', '{}', 'unactioned', 'woocommerce-core', '2021-01-27 00:56:10', NULL, 0, 'plain', '', 0), +(22, 'wc-update-db-reminder', 'update', 'en_US', 'WooCommerce database update done', 'WooCommerce database update complete. Thank you for updating to the latest version!', 'info', '{}', 'unactioned', 'woocommerce-core', '2021-01-27 09:56:10', NULL, 0, 'plain', '', 0), (23, 'wc-admin-getting-started-in-ecommerce', 'info', 'en_US', 'Getting Started in eCommerce - webinar', 'We want to make eCommerce and this process of getting started as easy as possible for you. Watch this webinar to get tips on how to have our store up and running in a breeze.', 'info', '{}', 'pending', 'woocommerce.com', '2021-01-27 19:24:06', NULL, 0, 'plain', '', 0); -- -------------------------------------------------------- @@ -2097,8 +2129,6 @@ INSERT INTO `wp_wc_admin_note_actions` (`action_id`, `note_id`, `name`, `label`, (15, 12, 'share-feedback', 'Share feedback', 'https://automattic.survey.fm/new-onboarding-survey', 'actioned', 0, ''), (16, 13, 'affirm-insight-first-sale', 'Yes', '', 'actioned', 0, 'Thanks for your feedback'), (17, 13, 'deny-insight-first-sale', 'No', '', 'actioned', 0, 'Thanks for your feedback'), -(56, 22, 'update-db_run', 'Update WooCommerce Database', 'http://localhost:18080/wp-admin/index.php?do_update_woocommerce=true&wc_db_update_nonce=6793bdfcdc', 'unactioned', 1, ''), -(57, 22, 'update-db_learn-more', 'Learn more about updates', 'https://docs.woocommerce.com/document/how-to-update-woocommerce/', 'unactioned', 0, ''), (58, 14, 'set-up-concierge', 'Schedule free session', 'https://wordpress.com/me/concierge', 'actioned', 1, ''), (59, 15, 'learn-more', 'Learn more', 'https://docs.woocommerce.com/document/woocommerce-shipping-and-tax/?utm_source=inbox', 'unactioned', 1, ''), (60, 16, 'learn-more-ecomm-unique-shopping-experience', 'Learn more', 'https://docs.woocommerce.com/document/product-add-ons/?utm_source=inbox', 'actioned', 1, ''), @@ -2107,7 +2137,8 @@ INSERT INTO `wp_wc_admin_note_actions` (`action_id`, `note_id`, `name`, `label`, (63, 19, 'install-now', 'Install now', 'admin.php?page=wc-admin&action=setup-woocommerce-payments', 'actioned', 1, ''), (64, 20, 'install-now', 'Install now', 'admin.php?page=wc-admin&action=setup-woocommerce-payments', 'actioned', 1, ''), (65, 23, 'watch-the-webinar', 'Watch the webinar', 'https://youtu.be/V_2XtCOyZ7o', 'actioned', 1, ''), -(66, 21, 'learn-more', 'Learn more', 'https://woocommerce.com/posts/ecommerce-shipping-solutions-guide/?utm_source=inbox', 'actioned', 1, ''); +(66, 21, 'learn-more', 'Learn more', 'https://woocommerce.com/posts/ecommerce-shipping-solutions-guide/?utm_source=inbox', 'actioned', 1, ''), +(69, 22, 'update-db_done', 'Thanks!', 'http://wordpress-test/wp-admin/admin.php?page=wc-settings&tab=shipping&zone_id=0&wc-hide-notice=update&_wc_notice_nonce=59b3c01b5b', 'actioned', 1, ''); -- -------------------------------------------------------- @@ -2153,7 +2184,7 @@ CREATE TABLE `wp_wc_customer_lookup` ( -- INSERT INTO `wp_wc_customer_lookup` (`customer_id`, `user_id`, `username`, `first_name`, `last_name`, `email`, `date_last_active`, `date_registered`, `country`, `postcode`, `city`, `state`) VALUES -(1, 1, 'admin', 'João', 'Silva', 'test-wordpress@jadlog.com.br', '2021-01-25 00:00:00', '2020-11-24 19:10:03', 'BR', '01311-300', 'São Paulo', 'SP'); +(1, 1, 'admin', 'João', 'Silva', 'test-wordpress@jadlog.com.br', '2021-02-23 00:00:00', '2020-11-24 19:10:03', 'BR', '01311-300', 'São Paulo', 'SP'); -- -------------------------------------------------------- @@ -2546,7 +2577,8 @@ CREATE TABLE `wp_woocommerce_sessions` ( -- INSERT INTO `wp_woocommerce_sessions` (`session_id`, `session_key`, `session_value`, `session_expiry`) VALUES -(2, 'bc74694fc472eff8c8d9043f7fcd9e2c', 'a:13:{s:4:\"cart\";s:411:\"a:1:{s:32:\"45c48cce2e2d7fbdea1afc51c7c6ad26\";a:11:{s:3:\"key\";s:32:\"45c48cce2e2d7fbdea1afc51c7c6ad26\";s:10:\"product_id\";i:9;s:12:\"variation_id\";i:0;s:9:\"variation\";a:0:{}s:8:\"quantity\";i:1;s:9:\"data_hash\";s:32:\"b5c1d5ca8bae6d4896cf1807cdf763f0\";s:13:\"line_tax_data\";a:2:{s:8:\"subtotal\";a:0:{}s:5:\"total\";a:0:{}}s:13:\"line_subtotal\";d:150;s:17:\"line_subtotal_tax\";i:0;s:10:\"line_total\";d:150;s:8:\"line_tax\";i:0;}}\";s:11:\"cart_totals\";s:412:\"a:15:{s:8:\"subtotal\";s:6:\"150.00\";s:12:\"subtotal_tax\";d:0;s:14:\"shipping_total\";s:7:\"1331.13\";s:12:\"shipping_tax\";i:0;s:14:\"shipping_taxes\";a:0:{}s:14:\"discount_total\";i:0;s:12:\"discount_tax\";i:0;s:19:\"cart_contents_total\";s:6:\"150.00\";s:17:\"cart_contents_tax\";i:0;s:19:\"cart_contents_taxes\";a:0:{}s:9:\"fee_total\";s:4:\"0.00\";s:7:\"fee_tax\";i:0;s:9:\"fee_taxes\";a:0:{}s:5:\"total\";s:7:\"1481.13\";s:9:\"total_tax\";d:0;}\";s:15:\"applied_coupons\";s:6:\"a:0:{}\";s:22:\"coupon_discount_totals\";s:6:\"a:0:{}\";s:26:\"coupon_discount_tax_totals\";s:6:\"a:0:{}\";s:21:\"removed_cart_contents\";s:6:\"a:0:{}\";s:22:\"shipping_for_package_0\";s:4106:\"a:2:{s:12:\"package_hash\";s:40:\"wc_ship_9122651b067bcae2c2e972152226146b\";s:5:\"rates\";a:7:{s:10:\"jadlog_com\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:10:\"jadlog_com\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:31:\"Jadlog Expresso - 3 dias úteis\";s:4:\"cost\";s:7:\"1331.13\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:3:{s:10:\"modalidade\";s:3:\"COM\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";}}s:14:\"jadlog_package\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:14:\"jadlog_package\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:30:\"Jadlog Package - 4 dias úteis\";s:4:\"cost\";s:5:\"97.76\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:3:{s:10:\"modalidade\";s:7:\"PACKAGE\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:2:\"10\";}}s:19:\"jadlog_pudo_BR13727\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR13727\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:146:\"Retire no ponto Pickup Jadlog POSTNET JARDINS (RUA DA CONSOLACAO, 2696 - CONSOLACAO - CERQUEIRA CESAR - SAO PAULO - CEP 01416-000) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR13727\";s:9:\"pudo_name\";s:15:\"POSTNET JARDINS\";s:12:\"pudo_address\";s:82:\"RUA DA CONSOLACAO, 2696 - CONSOLACAO - CERQUEIRA CESAR - SAO PAULO - CEP 01416-000\";}}s:19:\"jadlog_pudo_BR13615\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR13615\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:131:\"Retire no ponto Pickup Jadlog MULTIPARK - AUGUSTA (RUA AUGUSTA, 2515 - CERQUEIRA CESAR - SAO PAULO - CEP 01413-100) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR13615\";s:9:\"pudo_name\";s:19:\"MULTIPARK - AUGUSTA\";s:12:\"pudo_address\";s:63:\"RUA AUGUSTA, 2515 - CERQUEIRA CESAR - SAO PAULO - CEP 01413-100\";}}s:19:\"jadlog_pudo_BR15136\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR15136\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:132:\"Retire no ponto Pickup Jadlog COPIADORA JARDINS (ALAMEDA LORENA, 1304 - JARDIM PAULISTA - SAO PAULO - CEP 01424-006) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR15136\";s:9:\"pudo_name\";s:17:\"COPIADORA JARDINS\";s:12:\"pudo_address\";s:66:\"ALAMEDA LORENA, 1304 - JARDIM PAULISTA - SAO PAULO - CEP 01424-006\";}}s:19:\"jadlog_pudo_BR12767\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR12767\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:136:\"Retire no ponto Pickup Jadlog COPIADORA ALFA (RUA DONA ANTONIA DE QUEIROS, 100 - CONSOLACAO - SAO PAULO - CEP 01307-011) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR12767\";s:9:\"pudo_name\";s:14:\"COPIADORA ALFA\";s:12:\"pudo_address\";s:73:\"RUA DONA ANTONIA DE QUEIROS, 100 - CONSOLACAO - SAO PAULO - CEP 01307-011\";}}s:19:\"jadlog_pudo_BR12776\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR12776\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:162:\"Retire no ponto Pickup Jadlog ZOOM COPIAS E COMUNICACAO VISUAL (AVENIDA PAULISTA, 1159 - JARDIM PAULISTA - BELA VISTA - SAO PAULO - CEP 01311-200) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR12776\";s:9:\"pudo_name\";s:32:\"ZOOM COPIAS E COMUNICACAO VISUAL\";s:12:\"pudo_address\";s:81:\"AVENIDA PAULISTA, 1159 - JARDIM PAULISTA - BELA VISTA - SAO PAULO - CEP 01311-200\";}}}}\";s:25:\"previous_shipping_methods\";s:219:\"a:1:{i:0;a:7:{i:0;s:10:\"jadlog_com\";i:1;s:14:\"jadlog_package\";i:2;s:19:\"jadlog_pudo_BR13727\";i:3;s:19:\"jadlog_pudo_BR13615\";i:4;s:19:\"jadlog_pudo_BR15136\";i:5;s:19:\"jadlog_pudo_BR12767\";i:6;s:19:\"jadlog_pudo_BR12776\";}}\";s:22:\"shipping_method_counts\";s:14:\"a:1:{i:0;i:7;}\";s:8:\"customer\";s:709:\"a:26:{s:2:\"id\";s:1:\"0\";s:13:\"date_modified\";s:0:\"\";s:8:\"postcode\";s:9:\"01311-300\";s:4:\"city\";s:0:\"\";s:9:\"address_1\";s:0:\"\";s:7:\"address\";s:0:\"\";s:9:\"address_2\";s:0:\"\";s:5:\"state\";s:2:\"SP\";s:7:\"country\";s:2:\"BR\";s:17:\"shipping_postcode\";s:9:\"01311-300\";s:13:\"shipping_city\";s:0:\"\";s:18:\"shipping_address_1\";s:0:\"\";s:16:\"shipping_address\";s:0:\"\";s:18:\"shipping_address_2\";s:0:\"\";s:14:\"shipping_state\";s:2:\"SP\";s:16:\"shipping_country\";s:2:\"BR\";s:13:\"is_vat_exempt\";s:0:\"\";s:19:\"calculated_shipping\";s:0:\"\";s:10:\"first_name\";s:0:\"\";s:9:\"last_name\";s:0:\"\";s:7:\"company\";s:0:\"\";s:5:\"phone\";s:0:\"\";s:5:\"email\";s:0:\"\";s:19:\"shipping_first_name\";s:0:\"\";s:18:\"shipping_last_name\";s:0:\"\";s:16:\"shipping_company\";s:0:\"\";}\";s:10:\"wc_notices\";N;s:23:\"chosen_shipping_methods\";s:28:\"a:1:{i:0;s:10:\"jadlog_com\";}\";s:21:\"chosen_payment_method\";s:3:\"cod\";}', 1611948168); +(2, 'bc74694fc472eff8c8d9043f7fcd9e2c', 'a:13:{s:4:\"cart\";s:411:\"a:1:{s:32:\"45c48cce2e2d7fbdea1afc51c7c6ad26\";a:11:{s:3:\"key\";s:32:\"45c48cce2e2d7fbdea1afc51c7c6ad26\";s:10:\"product_id\";i:9;s:12:\"variation_id\";i:0;s:9:\"variation\";a:0:{}s:8:\"quantity\";i:1;s:9:\"data_hash\";s:32:\"b5c1d5ca8bae6d4896cf1807cdf763f0\";s:13:\"line_tax_data\";a:2:{s:8:\"subtotal\";a:0:{}s:5:\"total\";a:0:{}}s:13:\"line_subtotal\";d:150;s:17:\"line_subtotal_tax\";i:0;s:10:\"line_total\";d:150;s:8:\"line_tax\";i:0;}}\";s:11:\"cart_totals\";s:412:\"a:15:{s:8:\"subtotal\";s:6:\"150.00\";s:12:\"subtotal_tax\";d:0;s:14:\"shipping_total\";s:7:\"1331.13\";s:12:\"shipping_tax\";i:0;s:14:\"shipping_taxes\";a:0:{}s:14:\"discount_total\";i:0;s:12:\"discount_tax\";i:0;s:19:\"cart_contents_total\";s:6:\"150.00\";s:17:\"cart_contents_tax\";i:0;s:19:\"cart_contents_taxes\";a:0:{}s:9:\"fee_total\";s:4:\"0.00\";s:7:\"fee_tax\";i:0;s:9:\"fee_taxes\";a:0:{}s:5:\"total\";s:7:\"1481.13\";s:9:\"total_tax\";d:0;}\";s:15:\"applied_coupons\";s:6:\"a:0:{}\";s:22:\"coupon_discount_totals\";s:6:\"a:0:{}\";s:26:\"coupon_discount_tax_totals\";s:6:\"a:0:{}\";s:21:\"removed_cart_contents\";s:6:\"a:0:{}\";s:22:\"shipping_for_package_0\";s:4106:\"a:2:{s:12:\"package_hash\";s:40:\"wc_ship_9122651b067bcae2c2e972152226146b\";s:5:\"rates\";a:7:{s:10:\"jadlog_com\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:10:\"jadlog_com\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:31:\"Jadlog Expresso - 3 dias úteis\";s:4:\"cost\";s:7:\"1331.13\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:3:{s:10:\"modalidade\";s:3:\"COM\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";}}s:14:\"jadlog_package\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:14:\"jadlog_package\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:30:\"Jadlog Package - 4 dias úteis\";s:4:\"cost\";s:5:\"97.76\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:3:{s:10:\"modalidade\";s:7:\"PACKAGE\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:2:\"10\";}}s:19:\"jadlog_pudo_BR13727\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR13727\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:146:\"Retire no ponto Pickup Jadlog POSTNET JARDINS (RUA DA CONSOLACAO, 2696 - CONSOLACAO - CERQUEIRA CESAR - SAO PAULO - CEP 01416-000) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR13727\";s:9:\"pudo_name\";s:15:\"POSTNET JARDINS\";s:12:\"pudo_address\";s:82:\"RUA DA CONSOLACAO, 2696 - CONSOLACAO - CERQUEIRA CESAR - SAO PAULO - CEP 01416-000\";}}s:19:\"jadlog_pudo_BR13615\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR13615\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:131:\"Retire no ponto Pickup Jadlog MULTIPARK - AUGUSTA (RUA AUGUSTA, 2515 - CERQUEIRA CESAR - SAO PAULO - CEP 01413-100) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR13615\";s:9:\"pudo_name\";s:19:\"MULTIPARK - AUGUSTA\";s:12:\"pudo_address\";s:63:\"RUA AUGUSTA, 2515 - CERQUEIRA CESAR - SAO PAULO - CEP 01413-100\";}}s:19:\"jadlog_pudo_BR15136\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR15136\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:132:\"Retire no ponto Pickup Jadlog COPIADORA JARDINS (ALAMEDA LORENA, 1304 - JARDIM PAULISTA - SAO PAULO - CEP 01424-006) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR15136\";s:9:\"pudo_name\";s:17:\"COPIADORA JARDINS\";s:12:\"pudo_address\";s:66:\"ALAMEDA LORENA, 1304 - JARDIM PAULISTA - SAO PAULO - CEP 01424-006\";}}s:19:\"jadlog_pudo_BR12767\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR12767\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:136:\"Retire no ponto Pickup Jadlog COPIADORA ALFA (RUA DONA ANTONIA DE QUEIROS, 100 - CONSOLACAO - SAO PAULO - CEP 01307-011) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR12767\";s:9:\"pudo_name\";s:14:\"COPIADORA ALFA\";s:12:\"pudo_address\";s:73:\"RUA DONA ANTONIA DE QUEIROS, 100 - CONSOLACAO - SAO PAULO - CEP 01307-011\";}}s:19:\"jadlog_pudo_BR12776\";O:16:\"WC_Shipping_Rate\":2:{s:7:\"\0*\0data\";a:6:{s:2:\"id\";s:19:\"jadlog_pudo_BR12776\";s:9:\"method_id\";s:6:\"JADLOG\";s:11:\"instance_id\";i:0;s:5:\"label\";s:162:\"Retire no ponto Pickup Jadlog ZOOM COPIAS E COMUNICACAO VISUAL (AVENIDA PAULISTA, 1159 - JARDIM PAULISTA - BELA VISTA - SAO PAULO - CEP 01311-200) - 4 dias úteis\";s:4:\"cost\";s:6:\"789.09\";s:5:\"taxes\";a:0:{}}s:12:\"\0*\0meta_data\";a:6:{s:10:\"modalidade\";s:6:\"PICKUP\";s:11:\"valor_total\";s:3:\"150\";s:11:\"peso_taxado\";s:8:\"1000.002\";s:7:\"pudo_id\";s:7:\"BR12776\";s:9:\"pudo_name\";s:32:\"ZOOM COPIAS E COMUNICACAO VISUAL\";s:12:\"pudo_address\";s:81:\"AVENIDA PAULISTA, 1159 - JARDIM PAULISTA - BELA VISTA - SAO PAULO - CEP 01311-200\";}}}}\";s:25:\"previous_shipping_methods\";s:219:\"a:1:{i:0;a:7:{i:0;s:10:\"jadlog_com\";i:1;s:14:\"jadlog_package\";i:2;s:19:\"jadlog_pudo_BR13727\";i:3;s:19:\"jadlog_pudo_BR13615\";i:4;s:19:\"jadlog_pudo_BR15136\";i:5;s:19:\"jadlog_pudo_BR12767\";i:6;s:19:\"jadlog_pudo_BR12776\";}}\";s:22:\"shipping_method_counts\";s:14:\"a:1:{i:0;i:7;}\";s:8:\"customer\";s:709:\"a:26:{s:2:\"id\";s:1:\"0\";s:13:\"date_modified\";s:0:\"\";s:8:\"postcode\";s:9:\"01311-300\";s:4:\"city\";s:0:\"\";s:9:\"address_1\";s:0:\"\";s:7:\"address\";s:0:\"\";s:9:\"address_2\";s:0:\"\";s:5:\"state\";s:2:\"SP\";s:7:\"country\";s:2:\"BR\";s:17:\"shipping_postcode\";s:9:\"01311-300\";s:13:\"shipping_city\";s:0:\"\";s:18:\"shipping_address_1\";s:0:\"\";s:16:\"shipping_address\";s:0:\"\";s:18:\"shipping_address_2\";s:0:\"\";s:14:\"shipping_state\";s:2:\"SP\";s:16:\"shipping_country\";s:2:\"BR\";s:13:\"is_vat_exempt\";s:0:\"\";s:19:\"calculated_shipping\";s:0:\"\";s:10:\"first_name\";s:0:\"\";s:9:\"last_name\";s:0:\"\";s:7:\"company\";s:0:\"\";s:5:\"phone\";s:0:\"\";s:5:\"email\";s:0:\"\";s:19:\"shipping_first_name\";s:0:\"\";s:18:\"shipping_last_name\";s:0:\"\";s:16:\"shipping_company\";s:0:\"\";}\";s:10:\"wc_notices\";N;s:23:\"chosen_shipping_methods\";s:28:\"a:1:{i:0;s:10:\"jadlog_com\";}\";s:21:\"chosen_payment_method\";s:3:\"cod\";}', 1611948168), +(5, '1', 'a:7:{s:4:\"cart\";s:6:\"a:0:{}\";s:11:\"cart_totals\";s:367:\"a:15:{s:8:\"subtotal\";i:0;s:12:\"subtotal_tax\";i:0;s:14:\"shipping_total\";i:0;s:12:\"shipping_tax\";i:0;s:14:\"shipping_taxes\";a:0:{}s:14:\"discount_total\";i:0;s:12:\"discount_tax\";i:0;s:19:\"cart_contents_total\";i:0;s:17:\"cart_contents_tax\";i:0;s:19:\"cart_contents_taxes\";a:0:{}s:9:\"fee_total\";i:0;s:7:\"fee_tax\";i:0;s:9:\"fee_taxes\";a:0:{}s:5:\"total\";i:0;s:9:\"total_tax\";i:0;}\";s:15:\"applied_coupons\";s:6:\"a:0:{}\";s:22:\"coupon_discount_totals\";s:6:\"a:0:{}\";s:26:\"coupon_discount_tax_totals\";s:6:\"a:0:{}\";s:21:\"removed_cart_contents\";s:6:\"a:0:{}\";s:8:\"customer\";s:845:\"a:26:{s:2:\"id\";s:1:\"1\";s:13:\"date_modified\";s:25:\"2021-01-13T15:36:52+00:00\";s:8:\"postcode\";s:9:\"01311-300\";s:4:\"city\";s:10:\"São Paulo\";s:9:\"address_1\";s:6:\"Rua Um\";s:7:\"address\";s:6:\"Rua Um\";s:9:\"address_2\";s:0:\"\";s:5:\"state\";s:2:\"SP\";s:7:\"country\";s:2:\"BR\";s:17:\"shipping_postcode\";s:9:\"01311-300\";s:13:\"shipping_city\";s:10:\"São Paulo\";s:18:\"shipping_address_1\";s:6:\"Rua Um\";s:16:\"shipping_address\";s:6:\"Rua Um\";s:18:\"shipping_address_2\";s:0:\"\";s:14:\"shipping_state\";s:2:\"SP\";s:16:\"shipping_country\";s:2:\"BR\";s:13:\"is_vat_exempt\";s:0:\"\";s:19:\"calculated_shipping\";s:0:\"\";s:10:\"first_name\";s:5:\"João\";s:9:\"last_name\";s:5:\"Silva\";s:7:\"company\";s:0:\"\";s:5:\"phone\";s:14:\"(11) 7765-9989\";s:5:\"email\";s:28:\"test-wordpress@jadlog.com.br\";s:19:\"shipping_first_name\";s:5:\"João\";s:18:\"shipping_last_name\";s:5:\"Silva\";s:16:\"shipping_company\";s:0:\"\";}\";}', 1614292391); -- -------------------------------------------------------- @@ -2587,6 +2619,13 @@ CREATE TABLE `wp_woocommerce_shipping_zone_methods` ( `is_enabled` tinyint(1) NOT NULL DEFAULT '1' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +-- +-- Extraindo dados da tabela `wp_woocommerce_shipping_zone_methods` +-- + +INSERT INTO `wp_woocommerce_shipping_zone_methods` (`zone_id`, `instance_id`, `method_id`, `method_order`, `is_enabled`) VALUES +(0, 1, 'JADLOG', 1, 1); + -- -------------------------------------------------------- -- @@ -3573,7 +3612,7 @@ ALTER TABLE `wp_links` -- AUTO_INCREMENT de tabela `wp_options` -- ALTER TABLE `wp_options` - MODIFY `option_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=640; + MODIFY `option_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=681; -- -- AUTO_INCREMENT de tabela `wp_postmeta` @@ -3609,7 +3648,7 @@ ALTER TABLE `wp_term_taxonomy` -- AUTO_INCREMENT de tabela `wp_usermeta` -- ALTER TABLE `wp_usermeta` - MODIFY `umeta_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=57; + MODIFY `umeta_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=58; -- -- AUTO_INCREMENT de tabela `wp_users` @@ -3627,7 +3666,7 @@ ALTER TABLE `wp_wc_admin_notes` -- AUTO_INCREMENT de tabela `wp_wc_admin_note_actions` -- ALTER TABLE `wp_wc_admin_note_actions` - MODIFY `action_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=67; + MODIFY `action_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=70; -- -- AUTO_INCREMENT de tabela `wp_wc_customer_lookup` @@ -3711,7 +3750,7 @@ ALTER TABLE `wp_woocommerce_payment_tokens` -- AUTO_INCREMENT de tabela `wp_woocommerce_sessions` -- ALTER TABLE `wp_woocommerce_sessions` - MODIFY `session_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + MODIFY `session_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; -- -- AUTO_INCREMENT de tabela `wp_woocommerce_shipping_zones` @@ -3729,7 +3768,7 @@ ALTER TABLE `wp_woocommerce_shipping_zone_locations` -- AUTO_INCREMENT de tabela `wp_woocommerce_shipping_zone_methods` -- ALTER TABLE `wp_woocommerce_shipping_zone_methods` - MODIFY `instance_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT; + MODIFY `instance_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; -- -- AUTO_INCREMENT de tabela `wp_woocommerce_tax_rates` diff --git a/woocommerce-jadlog/tests/acceptance/ShippingZonesCest.php b/woocommerce-jadlog/tests/acceptance/ShippingZonesCest.php new file mode 100644 index 00000000..0d192ffb --- /dev/null +++ b/woocommerce-jadlog/tests/acceptance/ShippingZonesCest.php @@ -0,0 +1,32 @@ +resizeWindow(1200, 960); + } + + public function jadlogShippingMethodMustBeAvailable(AcceptanceTester $I) + { + $I->loginAs('admin', 'admin'); + $I->amOnAdminPage('/admin.php?page=wc-settings&tab=shipping'); + + $I->click('Adicionar área de entrega'); + $I->fillField(['name' => 'zone_name'], 'Zona de testes'); + + $I->click('Adicionar método de entrega'); + $I->selectOption('select[name=add_method_id]', 'Jadlog'); + $I->click('Adicionar método de entrega', '.wc-backbone-modal'); + $I->see('Jadlog'); + $I->see('Modalidades Package, Expresso e Pickup'); + + $I->fillField('input[placeholder="Selecione as regiões desta área"]', 'Argentina'); + $I->see('Buenos Aires'); + $I->pressKey('#select2-zone_locations-results li', \Facebook\WebDriver\WebDriverKeys::ENTER); + + $I->click('Salvar alterações'); + $I->click('Áreas de entrega'); + $I->seeLink('Zona de testes'); + } +} diff --git a/woocommerce-jadlog/vendor/autoload.php b/woocommerce-jadlog/vendor/autoload.php deleted file mode 100644 index e9402e40..00000000 --- a/woocommerce-jadlog/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/woocommerce-jadlog/vendor/composer/InstalledVersions.php b/woocommerce-jadlog/vendor/composer/InstalledVersions.php deleted file mode 100644 index bd8433da..00000000 --- a/woocommerce-jadlog/vendor/composer/InstalledVersions.php +++ /dev/null @@ -1,1211 +0,0 @@ - - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, - 'name' => 'jadlog/woocommerce-jadlog', - ), - 'versions' => - array ( - 'antecedent/patchwork' => - array ( - 'pretty_version' => '2.1.12', - 'version' => '2.1.12.0', - 'aliases' => - array ( - ), - 'reference' => 'b98e046dd4c0acc34a0846604f06f6111654d9ea', - ), - 'behat/gherkin' => - array ( - 'pretty_version' => 'v4.7.1', - 'version' => '4.7.1.0', - 'aliases' => - array ( - ), - 'reference' => '987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd', - ), - 'codeception/codeception' => - array ( - 'pretty_version' => '4.1.16', - 'version' => '4.1.16.0', - 'aliases' => - array ( - ), - 'reference' => 'daf4fe110b33855252009a0dcab87ce8bcf7c009', - ), - 'codeception/lib-asserts' => - array ( - 'pretty_version' => '1.13.2', - 'version' => '1.13.2.0', - 'aliases' => - array ( - ), - 'reference' => '184231d5eab66bc69afd6b9429344d80c67a33b6', - ), - 'codeception/lib-innerbrowser' => - array ( - 'pretty_version' => '1.3.6', - 'version' => '1.3.6.0', - 'aliases' => - array ( - ), - 'reference' => '41b79ba6761001bdb1f373a347400180693ad4e7', - ), - 'codeception/module-asserts' => - array ( - 'pretty_version' => '1.3.1', - 'version' => '1.3.1.0', - 'aliases' => - array ( - ), - 'reference' => '59374f2fef0cabb9e8ddb53277e85cdca74328de', - ), - 'codeception/module-cli' => - array ( - 'pretty_version' => '1.1.1', - 'version' => '1.1.1.0', - 'aliases' => - array ( - ), - 'reference' => '1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f', - ), - 'codeception/module-db' => - array ( - 'pretty_version' => '1.1.0', - 'version' => '1.1.0.0', - 'aliases' => - array ( - ), - 'reference' => '8c8076cd05d4db95798acd7dba2a56578210982c', - ), - 'codeception/module-filesystem' => - array ( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '781be167fb1557bfc9b61e0a4eac60a32c534ec1', - ), - 'codeception/module-phpbrowser' => - array ( - 'pretty_version' => '1.0.2', - 'version' => '1.0.2.0', - 'aliases' => - array ( - ), - 'reference' => '770a6be4160a5c0c08d100dd51bff35f6056bbf1', - ), - 'codeception/module-webdriver' => - array ( - 'pretty_version' => '1.2.0', - 'version' => '1.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '63ea08880a44df809bdfbca08597e1b68cee9f87', - ), - 'codeception/phpunit-wrapper' => - array ( - 'pretty_version' => '9.0.6', - 'version' => '9.0.6.0', - 'aliases' => - array ( - ), - 'reference' => 'b0c06abb3181eedca690170f7ed0fd26a70bfacc', - ), - 'codeception/stub' => - array ( - 'pretty_version' => '3.7.0', - 'version' => '3.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '468dd5fe659f131fc997f5196aad87512f9b1304', - ), - 'codeception/util-universalframework' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'cc381f364c6d24f9b9c7b70a4c724949725f491a', - ), - 'dg/mysql-dump' => - array ( - 'pretty_version' => 'v1.5.1', - 'version' => '1.5.1.0', - 'aliases' => - array ( - ), - 'reference' => 'e0e287b715b43293773a8b0edf8514f606e01780', - ), - 'doctrine/inflector' => - array ( - 'pretty_version' => '2.0.3', - 'version' => '2.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '9cf661f4eb38f7c881cac67c75ea9b00bf97b210', - ), - 'doctrine/instantiator' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b', - ), - 'facebook/webdriver' => - array ( - 'replaced' => - array ( - 0 => '*', - ), - ), - 'guzzlehttp/guzzle' => - array ( - 'pretty_version' => '7.2.0', - 'version' => '7.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '0aa74dfb41ae110835923ef10a9d803a22d50e79', - ), - 'guzzlehttp/promises' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => '60d379c243457e073cff02bc323a2a86cb355631', - ), - 'guzzlehttp/psr7' => - array ( - 'pretty_version' => '1.7.0', - 'version' => '1.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3', - ), - 'hautelook/phpass' => - array ( - 'pretty_version' => '0.3.5', - 'version' => '0.3.5.0', - 'aliases' => - array ( - ), - 'reference' => 'b4cbd9b67ed3ef5672ec79d8e0c46d24bd844abd', - ), - 'hoa/consistency' => - array ( - 'pretty_version' => '1.17.05.02', - 'version' => '1.17.05.02', - 'aliases' => - array ( - ), - 'reference' => 'fd7d0adc82410507f332516faf655b6ed22e4c2f', - ), - 'hoa/console' => - array ( - 'pretty_version' => '3.17.05.02', - 'version' => '3.17.05.02', - 'aliases' => - array ( - ), - 'reference' => 'e231fd3ea70e6d773576ae78de0bdc1daf331a66', - ), - 'hoa/event' => - array ( - 'pretty_version' => '1.17.01.13', - 'version' => '1.17.01.13', - 'aliases' => - array ( - ), - 'reference' => '6c0060dced212ffa3af0e34bb46624f990b29c54', - ), - 'hoa/exception' => - array ( - 'pretty_version' => '1.17.01.16', - 'version' => '1.17.01.16', - 'aliases' => - array ( - ), - 'reference' => '091727d46420a3d7468ef0595651488bfc3a458f', - ), - 'hoa/file' => - array ( - 'pretty_version' => '1.17.07.11', - 'version' => '1.17.07.11', - 'aliases' => - array ( - ), - 'reference' => '35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca', - ), - 'hoa/iterator' => - array ( - 'pretty_version' => '2.17.01.10', - 'version' => '2.17.01.10', - 'aliases' => - array ( - ), - 'reference' => 'd1120ba09cb4ccd049c86d10058ab94af245f0cc', - ), - 'hoa/protocol' => - array ( - 'pretty_version' => '1.17.01.14', - 'version' => '1.17.01.14', - 'aliases' => - array ( - ), - 'reference' => '5c2cf972151c45f373230da170ea015deecf19e2', - ), - 'hoa/stream' => - array ( - 'pretty_version' => '1.17.02.21', - 'version' => '1.17.02.21', - 'aliases' => - array ( - ), - 'reference' => '3293cfffca2de10525df51436adf88a559151d82', - ), - 'hoa/ustring' => - array ( - 'pretty_version' => '4.17.01.16', - 'version' => '4.17.01.16', - 'aliases' => - array ( - ), - 'reference' => 'e6326e2739178799b1fe3fdd92029f9517fa17a0', - ), - 'illuminate/collections' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '3c968b76c395c4ac94d378d4bdeea1af0e8ad44c', - ), - 'illuminate/contracts' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => 'b91459a9a0bd0de204c3cae6859ebd02dbcee6c6', - ), - 'illuminate/macroable' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '300aa13c086f25116b5f3cde3ca54ff5c822fb05', - ), - 'illuminate/support' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '930ae59aea86acd6abba2ab9c84bcfe41b1b7eec', - ), - 'jadlog/woocommerce-jadlog' => - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, - ), - 'lucatume/wp-browser' => - array ( - 'pretty_version' => '3.0.5.1', - 'version' => '3.0.5.1', - 'aliases' => - array ( - ), - 'reference' => '3cc816074cdeebe27e46312f4dae23738a87f78e', - ), - 'mikehaertl/php-shellcommand' => - array ( - 'pretty_version' => '1.6.3', - 'version' => '1.6.3.0', - 'aliases' => - array ( - ), - 'reference' => 'fe86ec847877b83bf61a96719e7f2e3b3e516a6b', - ), - 'mikemclin/laravel-wp-password' => - array ( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '84ff1113ff6866cdb0350c176dc3c843383e4819', - 'replaced' => - array ( - 0 => '2.0.1', - ), - ), - 'mustache/mustache' => - array ( - 'pretty_version' => 'v2.13.0', - 'version' => '2.13.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e95c5a008c23d3151d59ea72484d4f72049ab7f4', - ), - 'myclabs/deep-copy' => - array ( - 'pretty_version' => '1.10.2', - 'version' => '1.10.2.0', - 'aliases' => - array ( - ), - 'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220', - 'replaced' => - array ( - 0 => '1.10.2', - ), - ), - 'nesbot/carbon' => - array ( - 'pretty_version' => '2.43.0', - 'version' => '2.43.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd32c57d8389113742f4a88725a170236470012e2', - ), - 'nikic/php-parser' => - array ( - 'pretty_version' => 'v4.10.4', - 'version' => '4.10.4.0', - 'aliases' => - array ( - ), - 'reference' => 'c6d052fc58cb876152f89f532b95a8d7907e7f0e', - ), - 'phar-io/manifest' => - array ( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '85265efd3af7ba3ca4b2a2c34dbfc5788dd29133', - ), - 'phar-io/version' => - array ( - 'pretty_version' => '3.0.4', - 'version' => '3.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'e4782611070e50613683d2b9a57730e9a3ba5451', - ), - 'php-webdriver/webdriver' => - array ( - 'pretty_version' => '1.9.0', - 'version' => '1.9.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e3633154554605274cc9d59837f55a7427d72003', - ), - 'phpdocumentor/reflection-common' => - array ( - 'pretty_version' => '2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b', - ), - 'phpdocumentor/reflection-docblock' => - array ( - 'pretty_version' => '5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556', - ), - 'phpdocumentor/type-resolver' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0', - ), - 'phpspec/prophecy' => - array ( - 'pretty_version' => '1.12.2', - 'version' => '1.12.2.0', - 'aliases' => - array ( - ), - 'reference' => '245710e971a030f42e08f4912863805570f23d39', - ), - 'phpunit/php-code-coverage' => - array ( - 'pretty_version' => '9.2.5', - 'version' => '9.2.5.0', - 'aliases' => - array ( - ), - 'reference' => 'f3e026641cc91909d421802dd3ac7827ebfd97e1', - ), - 'phpunit/php-file-iterator' => - array ( - 'pretty_version' => '3.0.5', - 'version' => '3.0.5.0', - 'aliases' => - array ( - ), - 'reference' => 'aa4be8575f26070b100fccb67faabb28f21f66f8', - ), - 'phpunit/php-invoker' => - array ( - 'pretty_version' => '3.1.1', - 'version' => '3.1.1.0', - 'aliases' => - array ( - ), - 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67', - ), - 'phpunit/php-text-template' => - array ( - 'pretty_version' => '2.0.4', - 'version' => '2.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28', - ), - 'phpunit/php-timer' => - array ( - 'pretty_version' => '5.0.3', - 'version' => '5.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2', - ), - 'phpunit/phpunit' => - array ( - 'pretty_version' => '9.5.1', - 'version' => '9.5.1.0', - 'aliases' => - array ( - ), - 'reference' => 'e7bdf4085de85a825f4424eae52c99a1cec2f360', - ), - 'psr/container' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', - ), - 'psr/event-dispatcher' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', - ), - 'psr/event-dispatcher-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/http-client' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', - ), - 'psr/http-client-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/http-message' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', - ), - 'psr/http-message-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/log-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/simple-cache' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', - ), - 'ralouphie/getallheaders' => - array ( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '120b605dfeb996808c31b6477290a714d356e822', - ), - 'rmccue/requests' => - array ( - 'pretty_version' => 'v1.7.0', - 'version' => '1.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '87932f52ffad70504d93f04f15690cf16a089546', - ), - 'sebastian/cli-parser' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2', - ), - 'sebastian/code-unit' => - array ( - 'pretty_version' => '1.0.8', - 'version' => '1.0.8.0', - 'aliases' => - array ( - ), - 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120', - ), - 'sebastian/code-unit-reverse-lookup' => - array ( - 'pretty_version' => '2.0.3', - 'version' => '2.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5', - ), - 'sebastian/comparator' => - array ( - 'pretty_version' => '4.0.6', - 'version' => '4.0.6.0', - 'aliases' => - array ( - ), - 'reference' => '55f4261989e546dc112258c7a75935a81a7ce382', - ), - 'sebastian/complexity' => - array ( - 'pretty_version' => '2.0.2', - 'version' => '2.0.2.0', - 'aliases' => - array ( - ), - 'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88', - ), - 'sebastian/diff' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d', - ), - 'sebastian/environment' => - array ( - 'pretty_version' => '5.1.3', - 'version' => '5.1.3.0', - 'aliases' => - array ( - ), - 'reference' => '388b6ced16caa751030f6a69e588299fa09200ac', - ), - 'sebastian/exporter' => - array ( - 'pretty_version' => '4.0.3', - 'version' => '4.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'd89cc98761b8cb5a1a235a6b703ae50d34080e65', - ), - 'sebastian/global-state' => - array ( - 'pretty_version' => '5.0.2', - 'version' => '5.0.2.0', - 'aliases' => - array ( - ), - 'reference' => 'a90ccbddffa067b51f574dea6eb25d5680839455', - ), - 'sebastian/lines-of-code' => - array ( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc', - ), - 'sebastian/object-enumerator' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71', - ), - 'sebastian/object-reflector' => - array ( - 'pretty_version' => '2.0.4', - 'version' => '2.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7', - ), - 'sebastian/recursion-context' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'cd9d8cf3c5804de4341c283ed787f099f5506172', - ), - 'sebastian/resource-operations' => - array ( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8', - ), - 'sebastian/type' => - array ( - 'pretty_version' => '2.3.1', - 'version' => '2.3.1.0', - 'aliases' => - array ( - ), - 'reference' => '81cd61ab7bbf2de744aba0ea61fae32f721df3d2', - ), - 'sebastian/version' => - array ( - 'pretty_version' => '3.0.2', - 'version' => '3.0.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c6c1022351a901512170118436c764e473f6de8c', - ), - 'symfony/browser-kit' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'b03b2057ed53ee4eab2e8f372084d7722b7b8ffd', - ), - 'symfony/console' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'd62ec79478b55036f65e2602e282822b8eaaff0a', - ), - 'symfony/css-selector' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'f65f217b3314504a1ec99c2d6ef69016bb13490f', - ), - 'symfony/deprecation-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '5fa56b4074d1ae755beb55617ddafe6f5d78f665', - ), - 'symfony/dom-crawler' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '5d89ceb53ec65e1973a555072fac8ed5ecad3384', - ), - 'symfony/event-dispatcher' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '4f9760f8074978ad82e2ce854dff79a71fe45367', - ), - 'symfony/event-dispatcher-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '0ba7d54483095a198fa51781bc608d17e84dffa2', - ), - 'symfony/event-dispatcher-implementation' => - array ( - 'provided' => - array ( - 0 => '2.0', - ), - ), - 'symfony/finder' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '196f45723b5e618bf0e23b97e96d11652696ea9e', - ), - 'symfony/polyfill-ctype' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e', - ), - 'symfony/polyfill-intl-grapheme' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => '267a9adeb8ecb8071040a740930e077cdfb987af', - ), - 'symfony/polyfill-intl-normalizer' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => '6e971c891537eb617a00bb07a43d182a6915faba', - ), - 'symfony/polyfill-mbstring' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13', - ), - 'symfony/polyfill-php73' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'a678b42e92f86eca04b7fa4c0f6f19d097fb69e2', - ), - 'symfony/polyfill-php80' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91', - ), - 'symfony/process' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '313a38f09c77fbcdc1d223e57d368cea76a2fd2f', - ), - 'symfony/service-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd15da7ba4957ffb8f1747218be9e1a121fd298a1', - ), - 'symfony/string' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c95468897f408dd0aca2ff582074423dd0455122', - ), - 'symfony/translation' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c021864d4354ee55160ddcfd31dc477a1bc77949', - ), - 'symfony/translation-contracts' => - array ( - 'pretty_version' => 'v2.3.0', - 'version' => '2.3.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e2eaa60b558f26a4b0354e1bbb25636efaaad105', - ), - 'symfony/translation-implementation' => - array ( - 'provided' => - array ( - 0 => '2.0', - ), - ), - 'symfony/yaml' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '6bb8b36c6dea8100268512bf46e858c8eb5c545e', - ), - 'theseer/tokenizer' => - array ( - 'pretty_version' => '1.2.0', - 'version' => '1.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '75a63c33a8577608444246075ea0af0d052e452a', - ), - 'voku/portable-ascii' => - array ( - 'pretty_version' => '1.5.6', - 'version' => '1.5.6.0', - 'aliases' => - array ( - ), - 'reference' => '80953678b19901e5165c56752d087fc11526017c', - ), - 'vria/nodiacritic' => - array ( - 'pretty_version' => '0.1.2', - 'version' => '0.1.2.0', - 'aliases' => - array ( - ), - 'reference' => '3efeb60fb2586fe3ce8ff0f3c122d380717b8b07', - ), - 'webmozart/assert' => - array ( - 'pretty_version' => '1.9.1', - 'version' => '1.9.1.0', - 'aliases' => - array ( - ), - 'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389', - ), - 'wp-cli/mustangostang-spyc' => - array ( - 'pretty_version' => '0.6.3', - 'version' => '0.6.3.0', - 'aliases' => - array ( - ), - 'reference' => '6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7', - ), - 'wp-cli/php-cli-tools' => - array ( - 'pretty_version' => 'v0.11.11', - 'version' => '0.11.11.0', - 'aliases' => - array ( - ), - 'reference' => 'fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f', - ), - 'wp-cli/wp-cli' => - array ( - 'pretty_version' => 'v2.4.1', - 'version' => '2.4.1.0', - 'aliases' => - array ( - ), - 'reference' => 'ceb18598e79befa9b2a37a51efbb34910628988b', - ), - 'zordius/lightncandy' => - array ( - 'pretty_version' => 'v1.2.5', - 'version' => '1.2.5.0', - 'aliases' => - array ( - ), - 'reference' => '37aa381e0f27d411a630062070c7a5a2174c62e7', - ), - ), -); - - - - - - - -public static function getInstalledPackages() -{ -return array_keys(self::$installed['versions']); -} - - - - - - - - - -public static function isInstalled($packageName) -{ -return isset(self::$installed['versions'][$packageName]); -} - - - - - - - - - - - - - - -public static function satisfies(VersionParser $parser, $packageName, $constraint) -{ -$constraint = $parser->parseConstraints($constraint); -$provided = $parser->parseConstraints(self::getVersionRanges($packageName)); - -return $provided->matches($constraint); -} - - - - - - - - - - -public static function getVersionRanges($packageName) -{ -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); -} - -$ranges = array(); -if (isset(self::$installed['versions'][$packageName]['pretty_version'])) { -$ranges[] = self::$installed['versions'][$packageName]['pretty_version']; -} -if (array_key_exists('aliases', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']); -} -if (array_key_exists('replaced', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']); -} -if (array_key_exists('provided', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']); -} - -return implode(' || ', $ranges); -} - - - - - -public static function getVersion($packageName) -{ -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); -} - -if (!isset(self::$installed['versions'][$packageName]['version'])) { -return null; -} - -return self::$installed['versions'][$packageName]['version']; -} - - - - - -public static function getPrettyVersion($packageName) -{ -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); -} - -if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) { -return null; -} - -return self::$installed['versions'][$packageName]['pretty_version']; -} - - - - - -public static function getReference($packageName) -{ -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); -} - -if (!isset(self::$installed['versions'][$packageName]['reference'])) { -return null; -} - -return self::$installed['versions'][$packageName]['reference']; -} - - - - - -public static function getRootPackage() -{ -return self::$installed['root']; -} - - - - - - - -public static function getRawData() -{ -return self::$installed; -} - - - - - - - - - - - - - - - - - - - -public static function reload($data) -{ -self::$installed = $data; -} -} diff --git a/woocommerce-jadlog/vendor/composer/LICENSE b/woocommerce-jadlog/vendor/composer/LICENSE deleted file mode 100644 index f27399a0..00000000 --- a/woocommerce-jadlog/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/woocommerce-jadlog/vendor/composer/autoload_classmap.php b/woocommerce-jadlog/vendor/composer/autoload_classmap.php deleted file mode 100644 index 5c839cc8..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,667 +0,0 @@ - $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', - 'Codeception\\Exception\\ConnectionException' => $vendorDir . '/codeception/module-webdriver/src/Codeception/Exception/ConnectionException.php', - 'Codeception\\Exception\\ExternalUrlException' => $vendorDir . '/codeception/lib-innerbrowser/src/Codeception/Exception/ExternalUrlException.php', - 'Codeception\\Lib\\Connector\\Guzzle' => $vendorDir . '/codeception/module-phpbrowser/src/Codeception/Lib/Connector/Guzzle.php', - 'Codeception\\Lib\\Connector\\Universal' => $vendorDir . '/codeception/util-universalframework/src/Codeception/Lib/Connector/Universal.php', - 'Codeception\\Lib\\DbPopulator' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/DbPopulator.php', - 'Codeception\\Lib\\Driver\\Db' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/Db.php', - 'Codeception\\Lib\\Driver\\MySql' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/MySql.php', - 'Codeception\\Lib\\Driver\\Oci' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/Oci.php', - 'Codeception\\Lib\\Driver\\PostgreSql' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/PostgreSql.php', - 'Codeception\\Lib\\Driver\\SqlSrv' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/SqlSrv.php', - 'Codeception\\Lib\\Driver\\Sqlite' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Driver/Sqlite.php', - 'Codeception\\Lib\\Framework' => $vendorDir . '/codeception/lib-innerbrowser/src/Codeception/Lib/Framework.php', - 'Codeception\\Lib\\InnerBrowser' => $vendorDir . '/codeception/lib-innerbrowser/src/Codeception/Lib/InnerBrowser.php', - 'Codeception\\Lib\\Interfaces\\Db' => $vendorDir . '/codeception/module-db/src/Codeception/Lib/Interfaces/Db.php', - 'Codeception\\Lib\\Interfaces\\ScreenshotSaver' => $vendorDir . '/codeception/module-webdriver/src/Codeception/Lib/Interfaces/ScreenshotSaver.php', - 'Codeception\\Lib\\Interfaces\\SessionSnapshot' => $vendorDir . '/codeception/module-webdriver/src/Codeception/Lib/Interfaces/SessionSnapshot.php', - 'Codeception\\Module\\AbstractAsserts' => $vendorDir . '/codeception/module-asserts/src/Codeception/Module/AbstractAsserts.php', - 'Codeception\\Module\\Asserts' => $vendorDir . '/codeception/module-asserts/src/Codeception/Module/Asserts.php', - 'Codeception\\Module\\Cli' => $vendorDir . '/codeception/module-cli/src/Codeception/Module/Cli.php', - 'Codeception\\Module\\Db' => $vendorDir . '/codeception/module-db/src/Codeception/Module/Db.php', - 'Codeception\\Module\\Filesystem' => $vendorDir . '/codeception/module-filesystem/src/Codeception/Module/Filesystem.php', - 'Codeception\\Module\\PhpBrowser' => $vendorDir . '/codeception/module-phpbrowser/src/Codeception/Module/PhpBrowser.php', - 'Codeception\\Module\\UniversalFramework' => $vendorDir . '/codeception/util-universalframework/src/Codeception/Module/UniversalFramework.php', - 'Codeception\\Module\\WebDriver' => $vendorDir . '/codeception/module-webdriver/src/Codeception/Module/WebDriver.php', - 'Codeception\\Util\\HttpCode' => $vendorDir . '/codeception/lib-innerbrowser/src/Codeception/Util/HttpCode.php', - 'Codeception\\Util\\Shared\\Asserts' => $vendorDir . '/codeception/lib-asserts/src/Codeception/Util/Shared/Asserts.php', - 'Codeception\\Util\\Shared\\InheritedAsserts' => $vendorDir . '/codeception/lib-asserts/src/Codeception/Util/Shared/InheritedAsserts.php', - 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', - 'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php', - 'MySQLDump' => $vendorDir . '/dg/mysql-dump/src/MySQLDump.php', - 'MySQLImport' => $vendorDir . '/dg/mysql-dump/src/MySQLImport.php', - 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\ActualValueIsNotAnObjectException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php', - 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareParameterTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\BinaryOperator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualCanonicalizing' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualIgnoringCase' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualWithDelta' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectEquals' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Operator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\Constraint\\UnaryOperator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Error.php', - 'PHPUnit\\Framework\\ErrorTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/ErrorTestCase.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExecutionOrderDependency' => $vendorDir . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidArgumentException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\InvalidDataProviderException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php', - 'PHPUnit\\Framework\\InvalidParameterGroupException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\Api' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', - 'PHPUnit\\Framework\\MockObject\\ClassAlreadyExistsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php', - 'PHPUnit\\Framework\\MockObject\\ClassIsFinalException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php', - 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', - 'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php', - 'PHPUnit\\Framework\\MockObject\\DuplicateMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', - 'PHPUnit\\Framework\\MockObject\\InvalidMethodNameException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php', - 'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php', - 'PHPUnit\\Framework\\MockObject\\Method' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php', - 'PHPUnit\\Framework\\MockObject\\MethodCannotBeConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameAlreadyConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameAlreadyConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameNotConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodParametersAlreadyConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodParametersAlreadyConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php', - 'PHPUnit\\Framework\\MockObject\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php', - 'PHPUnit\\Framework\\MockObject\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php', - 'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php', - 'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php', - 'PHPUnit\\Framework\\MockObject\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php', - 'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\SoapExtensionNotAvailableException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php', - 'PHPUnit\\Framework\\MockObject\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php', - 'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php', - 'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php', - 'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', - 'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', - 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php', - 'PHPUnit\\Framework\\PHPTAssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php', - 'PHPUnit\\Framework\\Reorderable' => $vendorDir . '/phpunit/phpunit/src/Framework/Reorderable.php', - 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php', - 'PHPUnit\\Framework\\SyntheticSkippedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php', - 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/TestBuilder.php', - 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', - 'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', - 'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', - 'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', - 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', - 'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', - 'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', - 'PHPUnit\\Runner\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php', - 'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', - 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', - 'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', - 'PHPUnit\\Runner\\DefaultTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php', - 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Extension\\ExtensionHandler' => $vendorDir . '/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php', - 'PHPUnit\\Runner\\Extension\\PharLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/Extension/PharLoader.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php', - 'PHPUnit\\Runner\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/NullTestResultCache.php', - 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', - 'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', - 'PHPUnit\\Runner\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResultCache.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\CliArguments\\Builder' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Builder.php', - 'PHPUnit\\TextUI\\CliArguments\\Configuration' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Configuration.php', - 'PHPUnit\\TextUI\\CliArguments\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Exception.php', - 'PHPUnit\\TextUI\\CliArguments\\Mapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Mapper.php', - 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\DefaultResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php', - 'PHPUnit\\TextUI\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/Exception.php', - 'PHPUnit\\TextUI\\Help' => $vendorDir . '/phpunit/phpunit/src/TextUI/Help.php', - 'PHPUnit\\TextUI\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/ReflectionException.php', - 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/RuntimeException.php', - 'PHPUnit\\TextUI\\TestDirectoryNotFoundException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php', - 'PHPUnit\\TextUI\\TestFileNotFoundException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php', - 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\TextUI\\TestSuiteMapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestSuiteMapper.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\FilterMapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\Directory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/Directory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Clover.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Cobertura.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Crap4j.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Html.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Php.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Xml.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Configuration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Configuration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Constant' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Constant.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConvertLogTypes' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/ConvertLogTypes.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCloverToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCloverToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCrap4jToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCrap4jToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageHtmlToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageHtmlToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoveragePhpToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoveragePhpToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageTextToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageTextToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageXmlToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageXmlToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Directory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/Directory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Exception.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Extension' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/Extension.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\File' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/File.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\FileCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\FileCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Generator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Group' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Group.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Groups' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Groups.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSetting' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSetting.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IntroduceCoverageElement' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Loader' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Junit.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Logging.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TeamCity.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Html.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Xml' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Xml.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Migration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/Migration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilder' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilderException' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilderException.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationException' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationException.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveCacheTokensAttribute' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveCacheTokensAttribute.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveEmptyFilter' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveLogTypes' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveLogTypes.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFile' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFile.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuite.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocationTo93' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Variable' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Variable.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollectionIterator.php', - 'PHPUnit\\Util\\Annotation\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php', - 'PHPUnit\\Util\\Annotation\\Registry' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/Registry.php', - 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php', - 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception.php', - 'PHPUnit\\Util\\ExcludeList' => $vendorDir . '/phpunit/phpunit/src/Util/ExcludeList.php', - 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidDataSetException' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidDataSetException.php', - 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\VersionComparisonOperator' => $vendorDir . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php', - 'PHPUnit\\Util\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php', - 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit\\Util\\Xml\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Exception.php', - 'PHPUnit\\Util\\Xml\\FailedSchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/FailedSchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\Loader' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Loader.php', - 'PHPUnit\\Util\\Xml\\SchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\SchemaDetector' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaDetector.php', - 'PHPUnit\\Util\\Xml\\SchemaFinder' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaFinder.php', - 'PHPUnit\\Util\\Xml\\SnapshotNodeList' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SnapshotNodeList.php', - 'PHPUnit\\Util\\Xml\\SuccessfulSchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SuccessfulSchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\ValidationResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/ValidationResult.php', - 'PHPUnit\\Util\\Xml\\Validator' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Validator.php', - 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\ElementCollectionException' => $vendorDir . '/phar-io/manifest/src/exceptions/ElementCollectionException.php', - 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', - 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', - 'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', - 'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php', - 'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', - 'SebastianBergmann\\CliParser\\Parser' => $vendorDir . '/sebastian/cli-parser/src/Parser.php', - 'SebastianBergmann\\CliParser\\RequiredOptionArgumentMissingException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/RequiredOptionArgumentMissingException.php', - 'SebastianBergmann\\CliParser\\UnknownOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php', - 'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CrapIndex' => $vendorDir . '/phpunit/php-code-coverage/src/CrapIndex.php', - 'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', - 'SebastianBergmann\\CodeCoverage\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Directory.php', - 'SebastianBergmann\\CodeCoverage\\DirectoryCouldNotBeCreatedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PhpdbgDriver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PhpdbgNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Selector.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WrongXdebugVersionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WrongXdebugVersionException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug2Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2NotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Xdebug2NotEnabledException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug3Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3NotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Xdebug3NotEnabledException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\ParserException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ParserException.php', - 'SebastianBergmann\\CodeCoverage\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Percentage.php', - 'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\ReflectionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php', - 'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Cobertura' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Cobertura.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Cache' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Cache.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingCoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingCoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingUncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingUncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingCoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingCoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingUncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingUncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\UncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/UncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeCoverage\\XmlException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XmlException.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => $vendorDir . '/sebastian/code-unit/src/ClassMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\ClassUnit' => $vendorDir . '/sebastian/code-unit/src/ClassUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnit' => $vendorDir . '/sebastian/code-unit/src/CodeUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollection.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', - 'SebastianBergmann\\CodeUnit\\Exception' => $vendorDir . '/sebastian/code-unit/src/exceptions/Exception.php', - 'SebastianBergmann\\CodeUnit\\FunctionUnit' => $vendorDir . '/sebastian/code-unit/src/FunctionUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceUnit.php', - 'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', - 'SebastianBergmann\\CodeUnit\\Mapper' => $vendorDir . '/sebastian/code-unit/src/Mapper.php', - 'SebastianBergmann\\CodeUnit\\NoTraitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/NoTraitException.php', - 'SebastianBergmann\\CodeUnit\\ReflectionException' => $vendorDir . '/sebastian/code-unit/src/exceptions/ReflectionException.php', - 'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => $vendorDir . '/sebastian/code-unit/src/TraitMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\TraitUnit' => $vendorDir . '/sebastian/code-unit/src/TraitUnit.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\Exception' => $vendorDir . '/sebastian/comparator/src/exceptions/Exception.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\RuntimeException' => $vendorDir . '/sebastian/comparator/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Complexity\\Calculator' => $vendorDir . '/sebastian/complexity/src/Calculator.php', - 'SebastianBergmann\\Complexity\\Complexity' => $vendorDir . '/sebastian/complexity/src/Complexity/Complexity.php', - 'SebastianBergmann\\Complexity\\ComplexityCalculatingVisitor' => $vendorDir . '/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php', - 'SebastianBergmann\\Complexity\\ComplexityCollection' => $vendorDir . '/sebastian/complexity/src/Complexity/ComplexityCollection.php', - 'SebastianBergmann\\Complexity\\ComplexityCollectionIterator' => $vendorDir . '/sebastian/complexity/src/Complexity/ComplexityCollectionIterator.php', - 'SebastianBergmann\\Complexity\\CyclomaticComplexityCalculatingVisitor' => $vendorDir . '/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php', - 'SebastianBergmann\\Complexity\\Exception' => $vendorDir . '/sebastian/complexity/src/Exception/Exception.php', - 'SebastianBergmann\\Complexity\\RuntimeException' => $vendorDir . '/sebastian/complexity/src/Exception/RuntimeException.php', - 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\ExcludeList' => $vendorDir . '/sebastian/global-state/src/ExcludeList.php', - 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\Invoker\\Exception' => $vendorDir . '/phpunit/php-invoker/src/exceptions/Exception.php', - 'SebastianBergmann\\Invoker\\Invoker' => $vendorDir . '/phpunit/php-invoker/src/Invoker.php', - 'SebastianBergmann\\Invoker\\ProcessControlExtensionNotLoadedException' => $vendorDir . '/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php', - 'SebastianBergmann\\Invoker\\TimeoutException' => $vendorDir . '/phpunit/php-invoker/src/exceptions/TimeoutException.php', - 'SebastianBergmann\\LinesOfCode\\Counter' => $vendorDir . '/sebastian/lines-of-code/src/Counter.php', - 'SebastianBergmann\\LinesOfCode\\Exception' => $vendorDir . '/sebastian/lines-of-code/src/Exception/Exception.php', - 'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', - 'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => $vendorDir . '/sebastian/lines-of-code/src/LineCountingVisitor.php', - 'SebastianBergmann\\LinesOfCode\\LinesOfCode' => $vendorDir . '/sebastian/lines-of-code/src/LinesOfCode.php', - 'SebastianBergmann\\LinesOfCode\\NegativeValueException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', - 'SebastianBergmann\\LinesOfCode\\RuntimeException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Template\\Exception' => $vendorDir . '/phpunit/php-text-template/src/exceptions/Exception.php', - 'SebastianBergmann\\Template\\InvalidArgumentException' => $vendorDir . '/phpunit/php-text-template/src/exceptions/InvalidArgumentException.php', - 'SebastianBergmann\\Template\\RuntimeException' => $vendorDir . '/phpunit/php-text-template/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\Template\\Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', - 'SebastianBergmann\\Timer\\Duration' => $vendorDir . '/phpunit/php-timer/src/Duration.php', - 'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/exceptions/Exception.php', - 'SebastianBergmann\\Timer\\NoActiveTimerException' => $vendorDir . '/phpunit/php-timer/src/exceptions/NoActiveTimerException.php', - 'SebastianBergmann\\Timer\\ResourceUsageFormatter' => $vendorDir . '/phpunit/php-timer/src/ResourceUsageFormatter.php', - 'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => $vendorDir . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php', - 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Type\\CallableType' => $vendorDir . '/sebastian/type/src/CallableType.php', - 'SebastianBergmann\\Type\\Exception' => $vendorDir . '/sebastian/type/src/exception/Exception.php', - 'SebastianBergmann\\Type\\GenericObjectType' => $vendorDir . '/sebastian/type/src/GenericObjectType.php', - 'SebastianBergmann\\Type\\IterableType' => $vendorDir . '/sebastian/type/src/IterableType.php', - 'SebastianBergmann\\Type\\MixedType' => $vendorDir . '/sebastian/type/src/MixedType.php', - 'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/NullType.php', - 'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/ObjectType.php', - 'SebastianBergmann\\Type\\ReflectionMapper' => $vendorDir . '/sebastian/type/src/ReflectionMapper.php', - 'SebastianBergmann\\Type\\RuntimeException' => $vendorDir . '/sebastian/type/src/exception/RuntimeException.php', - 'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/SimpleType.php', - 'SebastianBergmann\\Type\\StaticType' => $vendorDir . '/sebastian/type/src/StaticType.php', - 'SebastianBergmann\\Type\\Type' => $vendorDir . '/sebastian/type/src/Type.php', - 'SebastianBergmann\\Type\\TypeName' => $vendorDir . '/sebastian/type/src/TypeName.php', - 'SebastianBergmann\\Type\\UnionType' => $vendorDir . '/sebastian/type/src/UnionType.php', - 'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/UnknownType.php', - 'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/VoidType.php', - 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', - 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', - 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', - 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', - 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', -); diff --git a/woocommerce-jadlog/vendor/composer/autoload_files.php b/woocommerce-jadlog/vendor/composer/autoload_files.php deleted file mode 100644 index dc58e122..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_files.php +++ /dev/null @@ -1,33 +0,0 @@ - $vendorDir . '/symfony/polyfill-php80/bootstrap.php', - 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', - 'e88992873b7765f9b5710cab95ba5dd7' => $vendorDir . '/hoa/consistency/Prelude.php', - '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', - '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', - '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', - '3e76f7f02b41af8cea96018933f6b7e3' => $vendorDir . '/hoa/protocol/Wrapper.php', - 'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php', - 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', - '60799491728b879e74601d83e38b2cad' => $vendorDir . '/illuminate/collections/helpers.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', - '72579e7bd17821bb1321b87411366eae' => $vendorDir . '/illuminate/support/helpers.php', - '3937806105cc8e221b8fa8db5b70d2f2' => $vendorDir . '/wp-cli/mustangostang-spyc/includes/functions.php', - 'be01b9b16925dcb22165c40b46681ac6' => $vendorDir . '/wp-cli/php-cli-tools/lib/cli/cli.php', - '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - '2a3c2110e8e0295330dc3d11a4cbc4cb' => $vendorDir . '/php-webdriver/webdriver/lib/Exception/TimeoutException.php', - '41ac945ee97c4f5461ef1c0ccb568262' => $vendorDir . '/lucatume/wp-browser/src/tad/WPBrowser/utils.php', - 'a708c649c455d50aa08b5043a5737509' => $vendorDir . '/lucatume/wp-browser/src/tad/WPBrowser/wp-polyfills.php', -); diff --git a/woocommerce-jadlog/vendor/composer/autoload_namespaces.php b/woocommerce-jadlog/vendor/composer/autoload_namespaces.php deleted file mode 100644 index fc254ff8..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,15 +0,0 @@ - array($vendorDir . '/wp-cli/php-cli-tools/lib'), - 'WP_CLI' => array($vendorDir . '/wp-cli/wp-cli/php'), - 'Requests' => array($vendorDir . '/rmccue/requests/library'), - 'Mustache' => array($vendorDir . '/mustache/mustache/src'), - 'Hautelook' => array($vendorDir . '/hautelook/phpass/src'), - 'Behat\\Gherkin' => array($vendorDir . '/behat/gherkin/src'), -); diff --git a/woocommerce-jadlog/vendor/composer/autoload_psr4.php b/woocommerce-jadlog/vendor/composer/autoload_psr4.php deleted file mode 100644 index fd2ed34f..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,67 +0,0 @@ - array($vendorDir . '/voku/portable-ascii/src/voku'), - 'tad\\' => array($vendorDir . '/lucatume/wp-browser/src/tad'), - 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'), - 'mikehaertl\\shellcommand\\' => array($vendorDir . '/mikehaertl/php-shellcommand/src'), - 'WooCommerce\\Jadlog\\Classes\\' => array($baseDir . '/classes'), - 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'VRia\\Utils\\' => array($vendorDir . '/vria/nodiacritic/src'), - 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), - 'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'), - 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'), - 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), - 'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'), - 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'), - 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), - 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), - 'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), - 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), - 'Symfony\\Component\\DomCrawler\\' => array($vendorDir . '/symfony/dom-crawler'), - 'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'), - 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'Symfony\\Component\\BrowserKit\\' => array($vendorDir . '/symfony/browser-kit'), - 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), - 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), - 'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'), - 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'), - 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), - 'Mustangostang\\' => array($vendorDir . '/wp-cli/mustangostang-spyc/src'), - 'MikeMcLin\\WpPassword\\' => array($vendorDir . '/mikemclin/laravel-wp-password/src'), - 'LightnCandy\\' => array($vendorDir . '/zordius/lightncandy/src'), - 'Illuminate\\Support\\' => array($vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/support'), - 'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), - 'Hoa\\Ustring\\' => array($vendorDir . '/hoa/ustring'), - 'Hoa\\Stream\\' => array($vendorDir . '/hoa/stream'), - 'Hoa\\Protocol\\' => array($vendorDir . '/hoa/protocol'), - 'Hoa\\Iterator\\' => array($vendorDir . '/hoa/iterator'), - 'Hoa\\File\\' => array($vendorDir . '/hoa/file'), - 'Hoa\\Exception\\' => array($vendorDir . '/hoa/exception'), - 'Hoa\\Event\\' => array($vendorDir . '/hoa/event'), - 'Hoa\\Console\\' => array($vendorDir . '/hoa/console'), - 'Hoa\\Consistency\\' => array($vendorDir . '/hoa/consistency'), - 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), - 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), - 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), - 'Facebook\\WebDriver\\' => array($vendorDir . '/php-webdriver/webdriver/lib'), - 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), - 'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), - 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), - 'Codeception\\PHPUnit\\' => array($vendorDir . '/codeception/phpunit-wrapper/src'), - 'Codeception\\Extension\\' => array($vendorDir . '/codeception/codeception/ext'), - 'Codeception\\' => array($vendorDir . '/codeception/codeception/src/Codeception', $vendorDir . '/codeception/stub/src', $vendorDir . '/lucatume/wp-browser/src/Codeception'), - 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), -); diff --git a/woocommerce-jadlog/vendor/composer/autoload_real.php b/woocommerce-jadlog/vendor/composer/autoload_real.php deleted file mode 100644 index 459bd027..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_real.php +++ /dev/null @@ -1,73 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire8015e9f3097d5767450e89bb9926f76c($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequire8015e9f3097d5767450e89bb9926f76c($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/woocommerce-jadlog/vendor/composer/autoload_static.php b/woocommerce-jadlog/vendor/composer/autoload_static.php deleted file mode 100644 index 8d5c0f1f..00000000 --- a/woocommerce-jadlog/vendor/composer/autoload_static.php +++ /dev/null @@ -1,1102 +0,0 @@ - __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', - 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', - 'e88992873b7765f9b5710cab95ba5dd7' => __DIR__ . '/..' . '/hoa/consistency/Prelude.php', - '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', - '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', - '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', - '3e76f7f02b41af8cea96018933f6b7e3' => __DIR__ . '/..' . '/hoa/protocol/Wrapper.php', - 'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php', - 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', - '60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', - '72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php', - '3937806105cc8e221b8fa8db5b70d2f2' => __DIR__ . '/..' . '/wp-cli/mustangostang-spyc/includes/functions.php', - 'be01b9b16925dcb22165c40b46681ac6' => __DIR__ . '/..' . '/wp-cli/php-cli-tools/lib/cli/cli.php', - '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - '2a3c2110e8e0295330dc3d11a4cbc4cb' => __DIR__ . '/..' . '/php-webdriver/webdriver/lib/Exception/TimeoutException.php', - '41ac945ee97c4f5461ef1c0ccb568262' => __DIR__ . '/..' . '/lucatume/wp-browser/src/tad/WPBrowser/utils.php', - 'a708c649c455d50aa08b5043a5737509' => __DIR__ . '/..' . '/lucatume/wp-browser/src/tad/WPBrowser/wp-polyfills.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'v' => - array ( - 'voku\\' => 5, - ), - 't' => - array ( - 'tad\\' => 4, - ), - 'p' => - array ( - 'phpDocumentor\\Reflection\\' => 25, - ), - 'm' => - array ( - 'mikehaertl\\shellcommand\\' => 24, - ), - 'W' => - array ( - 'WooCommerce\\Jadlog\\Classes\\' => 27, - 'Webmozart\\Assert\\' => 17, - ), - 'V' => - array ( - 'VRia\\Utils\\' => 11, - ), - 'S' => - array ( - 'Symfony\\Polyfill\\Php80\\' => 23, - 'Symfony\\Polyfill\\Php73\\' => 23, - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31, - 'Symfony\\Polyfill\\Ctype\\' => 23, - 'Symfony\\Contracts\\Translation\\' => 30, - 'Symfony\\Contracts\\Service\\' => 26, - 'Symfony\\Contracts\\EventDispatcher\\' => 34, - 'Symfony\\Component\\Yaml\\' => 23, - 'Symfony\\Component\\Translation\\' => 30, - 'Symfony\\Component\\String\\' => 25, - 'Symfony\\Component\\Process\\' => 26, - 'Symfony\\Component\\Finder\\' => 25, - 'Symfony\\Component\\EventDispatcher\\' => 34, - 'Symfony\\Component\\DomCrawler\\' => 29, - 'Symfony\\Component\\CssSelector\\' => 30, - 'Symfony\\Component\\Console\\' => 26, - 'Symfony\\Component\\BrowserKit\\' => 29, - ), - 'P' => - array ( - 'Psr\\SimpleCache\\' => 16, - 'Psr\\Http\\Message\\' => 17, - 'Psr\\Http\\Client\\' => 16, - 'Psr\\EventDispatcher\\' => 20, - 'Psr\\Container\\' => 14, - 'Prophecy\\' => 9, - 'PhpParser\\' => 10, - ), - 'M' => - array ( - 'Mustangostang\\' => 14, - 'MikeMcLin\\WpPassword\\' => 21, - ), - 'L' => - array ( - 'LightnCandy\\' => 12, - ), - 'I' => - array ( - 'Illuminate\\Support\\' => 19, - 'Illuminate\\Contracts\\' => 21, - ), - 'H' => - array ( - 'Hoa\\Ustring\\' => 12, - 'Hoa\\Stream\\' => 11, - 'Hoa\\Protocol\\' => 13, - 'Hoa\\Iterator\\' => 13, - 'Hoa\\File\\' => 9, - 'Hoa\\Exception\\' => 14, - 'Hoa\\Event\\' => 10, - 'Hoa\\Console\\' => 12, - 'Hoa\\Consistency\\' => 16, - ), - 'G' => - array ( - 'GuzzleHttp\\Psr7\\' => 16, - 'GuzzleHttp\\Promise\\' => 19, - 'GuzzleHttp\\' => 11, - ), - 'F' => - array ( - 'Facebook\\WebDriver\\' => 19, - ), - 'D' => - array ( - 'Doctrine\\Instantiator\\' => 22, - 'Doctrine\\Inflector\\' => 19, - 'DeepCopy\\' => 9, - ), - 'C' => - array ( - 'Codeception\\PHPUnit\\' => 20, - 'Codeception\\Extension\\' => 22, - 'Codeception\\' => 12, - 'Carbon\\' => 7, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'voku\\' => - array ( - 0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku', - ), - 'tad\\' => - array ( - 0 => __DIR__ . '/..' . '/lucatume/wp-browser/src/tad', - ), - 'phpDocumentor\\Reflection\\' => - array ( - 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', - 1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', - 2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', - ), - 'mikehaertl\\shellcommand\\' => - array ( - 0 => __DIR__ . '/..' . '/mikehaertl/php-shellcommand/src', - ), - 'WooCommerce\\Jadlog\\Classes\\' => - array ( - 0 => __DIR__ . '/../..' . '/classes', - ), - 'Webmozart\\Assert\\' => - array ( - 0 => __DIR__ . '/..' . '/webmozart/assert/src', - ), - 'VRia\\Utils\\' => - array ( - 0 => __DIR__ . '/..' . '/vria/nodiacritic/src', - ), - 'Symfony\\Polyfill\\Php80\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', - ), - 'Symfony\\Polyfill\\Php73\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php73', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', - ), - 'Symfony\\Polyfill\\Intl\\Grapheme\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme', - ), - 'Symfony\\Polyfill\\Ctype\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', - ), - 'Symfony\\Contracts\\Translation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/translation-contracts', - ), - 'Symfony\\Contracts\\Service\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/service-contracts', - ), - 'Symfony\\Contracts\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts', - ), - 'Symfony\\Component\\Yaml\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/yaml', - ), - 'Symfony\\Component\\Translation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/translation', - ), - 'Symfony\\Component\\String\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/string', - ), - 'Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), - 'Symfony\\Component\\Finder\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/finder', - ), - 'Symfony\\Component\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher', - ), - 'Symfony\\Component\\DomCrawler\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/dom-crawler', - ), - 'Symfony\\Component\\CssSelector\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/css-selector', - ), - 'Symfony\\Component\\Console\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/console', - ), - 'Symfony\\Component\\BrowserKit\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/browser-kit', - ), - 'Psr\\SimpleCache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/simple-cache/src', - ), - 'Psr\\Http\\Message\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/http-message/src', - ), - 'Psr\\Http\\Client\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/http-client/src', - ), - 'Psr\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/event-dispatcher/src', - ), - 'Psr\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/container/src', - ), - 'Prophecy\\' => - array ( - 0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy', - ), - 'PhpParser\\' => - array ( - 0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser', - ), - 'Mustangostang\\' => - array ( - 0 => __DIR__ . '/..' . '/wp-cli/mustangostang-spyc/src', - ), - 'MikeMcLin\\WpPassword\\' => - array ( - 0 => __DIR__ . '/..' . '/mikemclin/laravel-wp-password/src', - ), - 'LightnCandy\\' => - array ( - 0 => __DIR__ . '/..' . '/zordius/lightncandy/src', - ), - 'Illuminate\\Support\\' => - array ( - 0 => __DIR__ . '/..' . '/illuminate/collections', - 1 => __DIR__ . '/..' . '/illuminate/macroable', - 2 => __DIR__ . '/..' . '/illuminate/support', - ), - 'Illuminate\\Contracts\\' => - array ( - 0 => __DIR__ . '/..' . '/illuminate/contracts', - ), - 'Hoa\\Ustring\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/ustring', - ), - 'Hoa\\Stream\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/stream', - ), - 'Hoa\\Protocol\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/protocol', - ), - 'Hoa\\Iterator\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/iterator', - ), - 'Hoa\\File\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/file', - ), - 'Hoa\\Exception\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/exception', - ), - 'Hoa\\Event\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/event', - ), - 'Hoa\\Console\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/console', - ), - 'Hoa\\Consistency\\' => - array ( - 0 => __DIR__ . '/..' . '/hoa/consistency', - ), - 'GuzzleHttp\\Psr7\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', - ), - 'GuzzleHttp\\Promise\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src', - ), - 'GuzzleHttp\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src', - ), - 'Facebook\\WebDriver\\' => - array ( - 0 => __DIR__ . '/..' . '/php-webdriver/webdriver/lib', - ), - 'Doctrine\\Instantiator\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', - ), - 'Doctrine\\Inflector\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', - ), - 'DeepCopy\\' => - array ( - 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy', - ), - 'Codeception\\PHPUnit\\' => - array ( - 0 => __DIR__ . '/..' . '/codeception/phpunit-wrapper/src', - ), - 'Codeception\\Extension\\' => - array ( - 0 => __DIR__ . '/..' . '/codeception/codeception/ext', - ), - 'Codeception\\' => - array ( - 0 => __DIR__ . '/..' . '/codeception/codeception/src/Codeception', - 1 => __DIR__ . '/..' . '/codeception/stub/src', - 2 => __DIR__ . '/..' . '/lucatume/wp-browser/src/Codeception', - ), - 'Carbon\\' => - array ( - 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', - ), - ); - - public static $prefixesPsr0 = array ( - 'c' => - array ( - 'cli' => - array ( - 0 => __DIR__ . '/..' . '/wp-cli/php-cli-tools/lib', - ), - ), - 'W' => - array ( - 'WP_CLI' => - array ( - 0 => __DIR__ . '/..' . '/wp-cli/wp-cli/php', - ), - ), - 'R' => - array ( - 'Requests' => - array ( - 0 => __DIR__ . '/..' . '/rmccue/requests/library', - ), - ), - 'M' => - array ( - 'Mustache' => - array ( - 0 => __DIR__ . '/..' . '/mustache/mustache/src', - ), - ), - 'H' => - array ( - 'Hautelook' => - array ( - 0 => __DIR__ . '/..' . '/hautelook/phpass/src', - ), - ), - 'B' => - array ( - 'Behat\\Gherkin' => - array ( - 0 => __DIR__ . '/..' . '/behat/gherkin/src', - ), - ), - ); - - public static $classMap = array ( - 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', - 'Codeception\\Exception\\ConnectionException' => __DIR__ . '/..' . '/codeception/module-webdriver/src/Codeception/Exception/ConnectionException.php', - 'Codeception\\Exception\\ExternalUrlException' => __DIR__ . '/..' . '/codeception/lib-innerbrowser/src/Codeception/Exception/ExternalUrlException.php', - 'Codeception\\Lib\\Connector\\Guzzle' => __DIR__ . '/..' . '/codeception/module-phpbrowser/src/Codeception/Lib/Connector/Guzzle.php', - 'Codeception\\Lib\\Connector\\Universal' => __DIR__ . '/..' . '/codeception/util-universalframework/src/Codeception/Lib/Connector/Universal.php', - 'Codeception\\Lib\\DbPopulator' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/DbPopulator.php', - 'Codeception\\Lib\\Driver\\Db' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/Db.php', - 'Codeception\\Lib\\Driver\\MySql' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/MySql.php', - 'Codeception\\Lib\\Driver\\Oci' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/Oci.php', - 'Codeception\\Lib\\Driver\\PostgreSql' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/PostgreSql.php', - 'Codeception\\Lib\\Driver\\SqlSrv' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/SqlSrv.php', - 'Codeception\\Lib\\Driver\\Sqlite' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Driver/Sqlite.php', - 'Codeception\\Lib\\Framework' => __DIR__ . '/..' . '/codeception/lib-innerbrowser/src/Codeception/Lib/Framework.php', - 'Codeception\\Lib\\InnerBrowser' => __DIR__ . '/..' . '/codeception/lib-innerbrowser/src/Codeception/Lib/InnerBrowser.php', - 'Codeception\\Lib\\Interfaces\\Db' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Lib/Interfaces/Db.php', - 'Codeception\\Lib\\Interfaces\\ScreenshotSaver' => __DIR__ . '/..' . '/codeception/module-webdriver/src/Codeception/Lib/Interfaces/ScreenshotSaver.php', - 'Codeception\\Lib\\Interfaces\\SessionSnapshot' => __DIR__ . '/..' . '/codeception/module-webdriver/src/Codeception/Lib/Interfaces/SessionSnapshot.php', - 'Codeception\\Module\\AbstractAsserts' => __DIR__ . '/..' . '/codeception/module-asserts/src/Codeception/Module/AbstractAsserts.php', - 'Codeception\\Module\\Asserts' => __DIR__ . '/..' . '/codeception/module-asserts/src/Codeception/Module/Asserts.php', - 'Codeception\\Module\\Cli' => __DIR__ . '/..' . '/codeception/module-cli/src/Codeception/Module/Cli.php', - 'Codeception\\Module\\Db' => __DIR__ . '/..' . '/codeception/module-db/src/Codeception/Module/Db.php', - 'Codeception\\Module\\Filesystem' => __DIR__ . '/..' . '/codeception/module-filesystem/src/Codeception/Module/Filesystem.php', - 'Codeception\\Module\\PhpBrowser' => __DIR__ . '/..' . '/codeception/module-phpbrowser/src/Codeception/Module/PhpBrowser.php', - 'Codeception\\Module\\UniversalFramework' => __DIR__ . '/..' . '/codeception/util-universalframework/src/Codeception/Module/UniversalFramework.php', - 'Codeception\\Module\\WebDriver' => __DIR__ . '/..' . '/codeception/module-webdriver/src/Codeception/Module/WebDriver.php', - 'Codeception\\Util\\HttpCode' => __DIR__ . '/..' . '/codeception/lib-innerbrowser/src/Codeception/Util/HttpCode.php', - 'Codeception\\Util\\Shared\\Asserts' => __DIR__ . '/..' . '/codeception/lib-asserts/src/Codeception/Util/Shared/Asserts.php', - 'Codeception\\Util\\Shared\\InheritedAsserts' => __DIR__ . '/..' . '/codeception/lib-asserts/src/Codeception/Util/Shared/InheritedAsserts.php', - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php', - 'MySQLDump' => __DIR__ . '/..' . '/dg/mysql-dump/src/MySQLDump.php', - 'MySQLImport' => __DIR__ . '/..' . '/dg/mysql-dump/src/MySQLImport.php', - 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', - 'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\ActualValueIsNotAnObjectException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php', - 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareParameterTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php', - 'PHPUnit\\Framework\\ComparisonMethodDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\BinaryOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualCanonicalizing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php', - 'PHPUnit\\Framework\\Constraint\\IsEqualWithDelta' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectEquals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Operator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\Constraint\\UnaryOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Error.php', - 'PHPUnit\\Framework\\ErrorTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ErrorTestCase.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExecutionOrderDependency' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\InvalidDataProviderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php', - 'PHPUnit\\Framework\\InvalidParameterGroupException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\Api' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php', - 'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', - 'PHPUnit\\Framework\\MockObject\\ClassAlreadyExistsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php', - 'PHPUnit\\Framework\\MockObject\\ClassIsFinalException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php', - 'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', - 'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php', - 'PHPUnit\\Framework\\MockObject\\DuplicateMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', - 'PHPUnit\\Framework\\MockObject\\InvalidMethodNameException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php', - 'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php', - 'PHPUnit\\Framework\\MockObject\\Method' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php', - 'PHPUnit\\Framework\\MockObject\\MethodCannotBeConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameAlreadyConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameAlreadyConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php', - 'PHPUnit\\Framework\\MockObject\\MethodNameNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameNotConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MethodParametersAlreadyConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodParametersAlreadyConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php', - 'PHPUnit\\Framework\\MockObject\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php', - 'PHPUnit\\Framework\\MockObject\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php', - 'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php', - 'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php', - 'PHPUnit\\Framework\\MockObject\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php', - 'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\SoapExtensionNotAvailableException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php', - 'PHPUnit\\Framework\\MockObject\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php', - 'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php', - 'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php', - 'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', - 'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', - 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php', - 'PHPUnit\\Framework\\PHPTAssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php', - 'PHPUnit\\Framework\\Reorderable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Reorderable.php', - 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php', - 'PHPUnit\\Framework\\SyntheticSkippedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php', - 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestBuilder.php', - 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', - 'PHPUnit\\Runner\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', - 'PHPUnit\\Runner\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', - 'PHPUnit\\Runner\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', - 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', - 'PHPUnit\\Runner\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', - 'PHPUnit\\Runner\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', - 'PHPUnit\\Runner\\AfterTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php', - 'PHPUnit\\Runner\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', - 'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', - 'PHPUnit\\Runner\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', - 'PHPUnit\\Runner\\DefaultTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php', - 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Extension\\ExtensionHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php', - 'PHPUnit\\Runner\\Extension\\PharLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Extension/PharLoader.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php', - 'PHPUnit\\Runner\\NullTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/NullTestResultCache.php', - 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\ResultCacheExtension' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', - 'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', - 'PHPUnit\\Runner\\TestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResultCache.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\CliArguments\\Builder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Builder.php', - 'PHPUnit\\TextUI\\CliArguments\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Configuration.php', - 'PHPUnit\\TextUI\\CliArguments\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Exception.php', - 'PHPUnit\\TextUI\\CliArguments\\Mapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Mapper.php', - 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\DefaultResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php', - 'PHPUnit\\TextUI\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/Exception.php', - 'PHPUnit\\TextUI\\Help' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Help.php', - 'PHPUnit\\TextUI\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/ReflectionException.php', - 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/RuntimeException.php', - 'PHPUnit\\TextUI\\TestDirectoryNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php', - 'PHPUnit\\TextUI\\TestFileNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php', - 'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\TextUI\\TestSuiteMapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestSuiteMapper.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\FilterMapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\Directory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/Directory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Clover.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Cobertura.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Crap4j.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Html.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Php.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Xml.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Configuration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Constant' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Constant.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ConvertLogTypes' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/ConvertLogTypes.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCloverToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCloverToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCrap4jToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCrap4jToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageHtmlToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageHtmlToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoveragePhpToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoveragePhpToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageTextToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageTextToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\CoverageXmlToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageXmlToReport.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Directory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/Directory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Exception.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Extension' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/Extension.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\File' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/File.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\FileCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\FileCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Group' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Group.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Groups' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Groups.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSetting' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSetting.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\IntroduceCoverageElement' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Loader' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Junit.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Logging.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TeamCity.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Html.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Xml.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Text.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Migration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/Migration.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilderException.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MigrationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationException.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveCacheTokensAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveCacheTokensAttribute.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveEmptyFilter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\RemoveLogTypes' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveLogTypes.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectory.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFile' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFile.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuite.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollectionIterator.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocationTo93' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\Variable' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Variable.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollection.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollectionIterator.php', - 'PHPUnit\\Util\\Annotation\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php', - 'PHPUnit\\Util\\Annotation\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/Registry.php', - 'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php', - 'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception.php', - 'PHPUnit\\Util\\ExcludeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ExcludeList.php', - 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidDataSetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidDataSetException.php', - 'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\VersionComparisonOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php', - 'PHPUnit\\Util\\XdebugFilterScriptGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php', - 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit\\Util\\Xml\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Exception.php', - 'PHPUnit\\Util\\Xml\\FailedSchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/FailedSchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\Loader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Loader.php', - 'PHPUnit\\Util\\Xml\\SchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\SchemaDetector' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaDetector.php', - 'PHPUnit\\Util\\Xml\\SchemaFinder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaFinder.php', - 'PHPUnit\\Util\\Xml\\SnapshotNodeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SnapshotNodeList.php', - 'PHPUnit\\Util\\Xml\\SuccessfulSchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SuccessfulSchemaDetectionResult.php', - 'PHPUnit\\Util\\Xml\\ValidationResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/ValidationResult.php', - 'PHPUnit\\Util\\Xml\\Validator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Validator.php', - 'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\ElementCollectionException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ElementCollectionException.php', - 'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', - 'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', - 'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', - 'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php', - 'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', - 'SebastianBergmann\\CliParser\\Parser' => __DIR__ . '/..' . '/sebastian/cli-parser/src/Parser.php', - 'SebastianBergmann\\CliParser\\RequiredOptionArgumentMissingException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/RequiredOptionArgumentMissingException.php', - 'SebastianBergmann\\CliParser\\UnknownOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php', - 'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CrapIndex' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CrapIndex.php', - 'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', - 'SebastianBergmann\\CodeCoverage\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Directory.php', - 'SebastianBergmann\\CodeCoverage\\DirectoryCouldNotBeCreatedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PhpdbgDriver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PhpdbgNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Selector.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\WrongXdebugVersionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WrongXdebugVersionException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug2Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2NotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Xdebug2NotEnabledException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug3Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3NotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Xdebug3NotEnabledException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\ParserException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ParserException.php', - 'SebastianBergmann\\CodeCoverage\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Percentage.php', - 'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php', - 'SebastianBergmann\\CodeCoverage\\ReflectionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php', - 'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Cobertura' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Cobertura.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Cache' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Cache.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingCoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingCoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingUncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingUncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingCoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingCoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingUncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingUncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\UncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/UncoveredFileAnalyser.php', - 'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeCoverage\\XmlException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XmlException.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\ClassUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnit.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollection.php', - 'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', - 'SebastianBergmann\\CodeUnit\\Exception' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/Exception.php', - 'SebastianBergmann\\CodeUnit\\FunctionUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FunctionUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\InterfaceUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceUnit.php', - 'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', - 'SebastianBergmann\\CodeUnit\\Mapper' => __DIR__ . '/..' . '/sebastian/code-unit/src/Mapper.php', - 'SebastianBergmann\\CodeUnit\\NoTraitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/NoTraitException.php', - 'SebastianBergmann\\CodeUnit\\ReflectionException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/ReflectionException.php', - 'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitMethodUnit.php', - 'SebastianBergmann\\CodeUnit\\TraitUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitUnit.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\Exception' => __DIR__ . '/..' . '/sebastian/comparator/src/exceptions/Exception.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\RuntimeException' => __DIR__ . '/..' . '/sebastian/comparator/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Complexity\\Calculator' => __DIR__ . '/..' . '/sebastian/complexity/src/Calculator.php', - 'SebastianBergmann\\Complexity\\Complexity' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/Complexity.php', - 'SebastianBergmann\\Complexity\\ComplexityCalculatingVisitor' => __DIR__ . '/..' . '/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php', - 'SebastianBergmann\\Complexity\\ComplexityCollection' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/ComplexityCollection.php', - 'SebastianBergmann\\Complexity\\ComplexityCollectionIterator' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/ComplexityCollectionIterator.php', - 'SebastianBergmann\\Complexity\\CyclomaticComplexityCalculatingVisitor' => __DIR__ . '/..' . '/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php', - 'SebastianBergmann\\Complexity\\Exception' => __DIR__ . '/..' . '/sebastian/complexity/src/Exception/Exception.php', - 'SebastianBergmann\\Complexity\\RuntimeException' => __DIR__ . '/..' . '/sebastian/complexity/src/Exception/RuntimeException.php', - 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\ExcludeList' => __DIR__ . '/..' . '/sebastian/global-state/src/ExcludeList.php', - 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\Invoker\\Exception' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/Exception.php', - 'SebastianBergmann\\Invoker\\Invoker' => __DIR__ . '/..' . '/phpunit/php-invoker/src/Invoker.php', - 'SebastianBergmann\\Invoker\\ProcessControlExtensionNotLoadedException' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php', - 'SebastianBergmann\\Invoker\\TimeoutException' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/TimeoutException.php', - 'SebastianBergmann\\LinesOfCode\\Counter' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Counter.php', - 'SebastianBergmann\\LinesOfCode\\Exception' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/Exception.php', - 'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', - 'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LineCountingVisitor.php', - 'SebastianBergmann\\LinesOfCode\\LinesOfCode' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LinesOfCode.php', - 'SebastianBergmann\\LinesOfCode\\NegativeValueException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', - 'SebastianBergmann\\LinesOfCode\\RuntimeException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Template\\Exception' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/Exception.php', - 'SebastianBergmann\\Template\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/InvalidArgumentException.php', - 'SebastianBergmann\\Template\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\Template\\Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', - 'SebastianBergmann\\Timer\\Duration' => __DIR__ . '/..' . '/phpunit/php-timer/src/Duration.php', - 'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/Exception.php', - 'SebastianBergmann\\Timer\\NoActiveTimerException' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/NoActiveTimerException.php', - 'SebastianBergmann\\Timer\\ResourceUsageFormatter' => __DIR__ . '/..' . '/phpunit/php-timer/src/ResourceUsageFormatter.php', - 'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php', - 'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Type\\CallableType' => __DIR__ . '/..' . '/sebastian/type/src/CallableType.php', - 'SebastianBergmann\\Type\\Exception' => __DIR__ . '/..' . '/sebastian/type/src/exception/Exception.php', - 'SebastianBergmann\\Type\\GenericObjectType' => __DIR__ . '/..' . '/sebastian/type/src/GenericObjectType.php', - 'SebastianBergmann\\Type\\IterableType' => __DIR__ . '/..' . '/sebastian/type/src/IterableType.php', - 'SebastianBergmann\\Type\\MixedType' => __DIR__ . '/..' . '/sebastian/type/src/MixedType.php', - 'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/NullType.php', - 'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/ObjectType.php', - 'SebastianBergmann\\Type\\ReflectionMapper' => __DIR__ . '/..' . '/sebastian/type/src/ReflectionMapper.php', - 'SebastianBergmann\\Type\\RuntimeException' => __DIR__ . '/..' . '/sebastian/type/src/exception/RuntimeException.php', - 'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/SimpleType.php', - 'SebastianBergmann\\Type\\StaticType' => __DIR__ . '/..' . '/sebastian/type/src/StaticType.php', - 'SebastianBergmann\\Type\\Type' => __DIR__ . '/..' . '/sebastian/type/src/Type.php', - 'SebastianBergmann\\Type\\TypeName' => __DIR__ . '/..' . '/sebastian/type/src/TypeName.php', - 'SebastianBergmann\\Type\\UnionType' => __DIR__ . '/..' . '/sebastian/type/src/UnionType.php', - 'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/UnknownType.php', - 'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/VoidType.php', - 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', - 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', - 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', - 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', - 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::$prefixesPsr0; - $loader->classMap = ComposerStaticInit8015e9f3097d5767450e89bb9926f76c::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/woocommerce-jadlog/vendor/composer/installed.json b/woocommerce-jadlog/vendor/composer/installed.json deleted file mode 100644 index 21a02199..00000000 --- a/woocommerce-jadlog/vendor/composer/installed.json +++ /dev/null @@ -1,7139 +0,0 @@ -{ - "packages": [ - { - "name": "antecedent/patchwork", - "version": "2.1.12", - "version_normalized": "2.1.12.0", - "source": { - "type": "git", - "url": "https://github.com/antecedent/patchwork.git", - "reference": "b98e046dd4c0acc34a0846604f06f6111654d9ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antecedent/patchwork/zipball/b98e046dd4c0acc34a0846604f06f6111654d9ea", - "reference": "b98e046dd4c0acc34a0846604f06f6111654d9ea", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": ">=4" - }, - "time": "2019-12-22T17:52:09+00:00", - "type": "library", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignas Rudaitis", - "email": "ignas.rudaitis@gmail.com" - } - ], - "description": "Method redefinition (monkey-patching) functionality for PHP.", - "homepage": "http://patchwork2.org/", - "keywords": [ - "aop", - "aspect", - "interception", - "monkeypatching", - "redefinition", - "runkit", - "testing" - ], - "support": { - "issues": "https://github.com/antecedent/patchwork/issues", - "source": "https://github.com/antecedent/patchwork/tree/2.1.12" - }, - "install-path": "../antecedent/patchwork" - }, - { - "name": "behat/gherkin", - "version": "v4.7.1", - "version_normalized": "4.7.1.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", - "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "phpunit/phpunit": "~5.7|~6|~7", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" - }, - "time": "2021-01-26T16:24:32+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Gherkin DSL parser for PHP", - "homepage": "http://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" - ], - "support": { - "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.7.1" - }, - "install-path": "../behat/gherkin" - }, - { - "name": "codeception/codeception", - "version": "4.1.16", - "version_normalized": "4.1.16.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/Codeception.git", - "reference": "daf4fe110b33855252009a0dcab87ce8bcf7c009" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/daf4fe110b33855252009a0dcab87ce8bcf7c009", - "reference": "daf4fe110b33855252009a0dcab87ce8bcf7c009", - "shasum": "" - }, - "require": { - "behat/gherkin": "^4.4.0", - "codeception/lib-asserts": "^1.0", - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", - "codeception/stub": "^2.0 | ^3.0", - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "guzzlehttp/psr7": "~1.4", - "php": ">=5.6.0 <9.0", - "symfony/console": ">=2.7 <6.0", - "symfony/css-selector": ">=2.7 <6.0", - "symfony/event-dispatcher": ">=2.7 <6.0", - "symfony/finder": ">=2.7 <6.0", - "symfony/yaml": ">=2.7 <6.0" - }, - "require-dev": { - "codeception/module-asserts": "*@dev", - "codeception/module-cli": "*@dev", - "codeception/module-db": "*@dev", - "codeception/module-filesystem": "*@dev", - "codeception/module-phpbrowser": "*@dev", - "codeception/specify": "~0.3", - "codeception/util-universalframework": "*@dev", - "monolog/monolog": "~1.8", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <6.0", - "vlucas/phpdotenv": "^2.0 | ^3.0 | ^4.0 | ^5.0" - }, - "suggest": { - "codeception/specify": "BDD-style code blocks", - "codeception/verify": "BDD-style assertions", - "hoa/console": "For interactive console functionality", - "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/phpunit-bridge": "For phpunit-bridge support" - }, - "time": "2021-01-26T07:25:32+00:00", - "bin": [ - "codecept" - ], - "type": "library", - "extra": { - "branch-alias": [] - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Codeception\\": "src/Codeception", - "Codeception\\Extension\\": "ext" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - } - ], - "description": "BDD-style testing framework", - "homepage": "http://codeception.com/", - "keywords": [ - "BDD", - "TDD", - "acceptance testing", - "functional testing", - "unit testing" - ], - "support": { - "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.16" - }, - "funding": [ - { - "url": "https://opencollective.com/codeception", - "type": "open_collective" - } - ], - "install-path": "../codeception/codeception" - }, - { - "name": "codeception/lib-asserts", - "version": "1.13.2", - "version_normalized": "1.13.2.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/184231d5eab66bc69afd6b9429344d80c67a33b6", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6", - "shasum": "" - }, - "require": { - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", - "ext-dom": "*", - "php": ">=5.6.0 <9.0" - }, - "time": "2020-10-21T16:26:20+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - }, - { - "name": "Gintautas Miselis" - }, - { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" - } - ], - "description": "Assertion methods used by Codeception core and Asserts module", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/lib-asserts/issues", - "source": "https://github.com/Codeception/lib-asserts/tree/1.13.2" - }, - "install-path": "../codeception/lib-asserts" - }, - { - "name": "codeception/lib-innerbrowser", - "version": "1.3.6", - "version_normalized": "1.3.6.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "41b79ba6761001bdb1f373a347400180693ad4e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/41b79ba6761001bdb1f373a347400180693ad4e7", - "reference": "41b79ba6761001bdb1f373a347400180693ad4e7", - "shasum": "" - }, - "require": { - "codeception/codeception": "*@dev", - "ext-dom": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=5.6.0 <9.0", - "symfony/browser-kit": ">=2.7 <6.0", - "symfony/dom-crawler": ">=2.7 <6.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/util-universalframework": "dev-master" - }, - "time": "2021-01-17T11:21:09+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "Parent library for all Codeception framework modules and PhpBrowser", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.3.6" - }, - "install-path": "../codeception/lib-innerbrowser" - }, - { - "name": "codeception/module-asserts", - "version": "1.3.1", - "version_normalized": "1.3.1.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-asserts.git", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/59374f2fef0cabb9e8ddb53277e85cdca74328de", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de", - "shasum": "" - }, - "require": { - "codeception/codeception": "*@dev", - "codeception/lib-asserts": "^1.13.1", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "time": "2020-10-21T16:48:15+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - }, - { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" - } - ], - "description": "Codeception module containing various assertions", - "homepage": "https://codeception.com/", - "keywords": [ - "assertions", - "asserts", - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/module-asserts/issues", - "source": "https://github.com/Codeception/module-asserts/tree/1.3.1" - }, - "install-path": "../codeception/module-asserts" - }, - { - "name": "codeception/module-cli", - "version": "1.1.1", - "version_normalized": "1.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-cli.git", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-cli/zipball/1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", - "shasum": "" - }, - "require": { - "codeception/codeception": "*@dev", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "time": "2020-12-26T16:56:19+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - } - ], - "description": "Codeception module for testing basic shell commands and shell output", - "homepage": "http://codeception.com/", - "keywords": [ - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/module-cli/issues", - "source": "https://github.com/Codeception/module-cli/tree/1.1.1" - }, - "install-path": "../codeception/module-cli" - }, - { - "name": "codeception/module-db", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-db.git", - "reference": "8c8076cd05d4db95798acd7dba2a56578210982c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-db/zipball/8c8076cd05d4db95798acd7dba2a56578210982c", - "reference": "8c8076cd05d4db95798acd7dba2a56578210982c", - "shasum": "" - }, - "require": { - "codeception/codeception": "*@dev", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "time": "2020-12-20T13:37:07+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "DB module for Codeception", - "homepage": "http://codeception.com/", - "keywords": [ - "codeception", - "database-testing", - "db-testing" - ], - "support": { - "issues": "https://github.com/Codeception/module-db/issues", - "source": "https://github.com/Codeception/module-db/tree/1.1.0" - }, - "install-path": "../codeception/module-db" - }, - { - "name": "codeception/module-filesystem", - "version": "1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-filesystem.git", - "reference": "781be167fb1557bfc9b61e0a4eac60a32c534ec1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/781be167fb1557bfc9b61e0a4eac60a32c534ec1", - "reference": "781be167fb1557bfc9b61e0a4eac60a32c534ec1", - "shasum": "" - }, - "require": { - "codeception/codeception": "^4.0", - "php": ">=5.6.0 <9.0", - "symfony/finder": ">=2.7 <6.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "time": "2020-10-24T14:46:40+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "Codeception module for testing local filesystem", - "homepage": "http://codeception.com/", - "keywords": [ - "codeception", - "filesystem" - ], - "support": { - "issues": "https://github.com/Codeception/module-filesystem/issues", - "source": "https://github.com/Codeception/module-filesystem/tree/1.0.3" - }, - "install-path": "../codeception/module-filesystem" - }, - { - "name": "codeception/module-phpbrowser", - "version": "1.0.2", - "version_normalized": "1.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-phpbrowser.git", - "reference": "770a6be4160a5c0c08d100dd51bff35f6056bbf1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/770a6be4160a5c0c08d100dd51bff35f6056bbf1", - "reference": "770a6be4160a5c0c08d100dd51bff35f6056bbf1", - "shasum": "" - }, - "require": { - "codeception/codeception": "^4.0", - "codeception/lib-innerbrowser": "^1.3", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/module-rest": "^1.0" - }, - "suggest": { - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" - }, - "time": "2020-10-24T15:29:28+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - } - ], - "description": "Codeception module for testing web application over HTTP", - "homepage": "http://codeception.com/", - "keywords": [ - "codeception", - "functional-testing", - "http" - ], - "support": { - "issues": "https://github.com/Codeception/module-phpbrowser/issues", - "source": "https://github.com/Codeception/module-phpbrowser/tree/1.0.2" - }, - "install-path": "../codeception/module-phpbrowser" - }, - { - "name": "codeception/module-webdriver", - "version": "1.2.0", - "version_normalized": "1.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-webdriver.git", - "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/63ea08880a44df809bdfbca08597e1b68cee9f87", - "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87", - "shasum": "" - }, - "require": { - "codeception/codeception": "^4.0", - "php": ">=5.6.0 <9.0", - "php-webdriver/webdriver": "^1.8.0" - }, - "suggest": { - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" - }, - "time": "2021-01-17T19:23:20+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - }, - { - "name": "Zaahid Bateson" - } - ], - "description": "WebDriver module for Codeception", - "homepage": "http://codeception.com/", - "keywords": [ - "acceptance-testing", - "browser-testing", - "codeception" - ], - "support": { - "issues": "https://github.com/Codeception/module-webdriver/issues", - "source": "https://github.com/Codeception/module-webdriver/tree/1.2.0" - }, - "install-path": "../codeception/module-webdriver" - }, - { - "name": "codeception/phpunit-wrapper", - "version": "9.0.6", - "version_normalized": "9.0.6.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/b0c06abb3181eedca690170f7ed0fd26a70bfacc", - "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "phpunit/phpunit": "^9.0" - }, - "require-dev": { - "codeception/specify": "*", - "consolidation/robo": "^3.0.0-alpha3", - "vlucas/phpdotenv": "^3.0" - }, - "time": "2020-12-28T13:59:47+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Codeception\\PHPUnit\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Davert", - "email": "davert.php@resend.cc" - }, - { - "name": "Naktibalda" - } - ], - "description": "PHPUnit classes used by Codeception", - "support": { - "issues": "https://github.com/Codeception/phpunit-wrapper/issues", - "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.6" - }, - "install-path": "../codeception/phpunit-wrapper" - }, - { - "name": "codeception/stub", - "version": "3.7.0", - "version_normalized": "3.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/Stub.git", - "reference": "468dd5fe659f131fc997f5196aad87512f9b1304" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/468dd5fe659f131fc997f5196aad87512f9b1304", - "reference": "468dd5fe659f131fc997f5196aad87512f9b1304", - "shasum": "" - }, - "require": { - "phpunit/phpunit": "^8.4 | ^9.0" - }, - "time": "2020-07-03T15:54:43+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Codeception\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "support": { - "issues": "https://github.com/Codeception/Stub/issues", - "source": "https://github.com/Codeception/Stub/tree/3.7.0" - }, - "install-path": "../codeception/stub" - }, - { - "name": "codeception/util-universalframework", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/util-universalframework.git", - "reference": "cc381f364c6d24f9b9c7b70a4c724949725f491a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/util-universalframework/zipball/cc381f364c6d24f9b9c7b70a4c724949725f491a", - "reference": "cc381f364c6d24f9b9c7b70a4c724949725f491a", - "shasum": "" - }, - "time": "2019-09-22T06:06:49+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gintautas Miselis" - } - ], - "description": "Mock framework module used in internal Codeception tests", - "homepage": "http://codeception.com/", - "support": { - "issues": "https://github.com/Codeception/util-universalframework/issues", - "source": "https://github.com/Codeception/util-universalframework/tree/1.0.0" - }, - "install-path": "../codeception/util-universalframework" - }, - { - "name": "dg/mysql-dump", - "version": "v1.5.1", - "version_normalized": "1.5.1.0", - "source": { - "type": "git", - "url": "https://github.com/dg/MySQL-dump.git", - "reference": "e0e287b715b43293773a8b0edf8514f606e01780" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dg/MySQL-dump/zipball/e0e287b715b43293773a8b0edf8514f606e01780", - "reference": "e0e287b715b43293773a8b0edf8514f606e01780", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "time": "2019-09-10T21:36:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "http://davidgrudl.com" - } - ], - "description": "MySQL database dump.", - "homepage": "https://github.com/dg/MySQL-dump", - "keywords": [ - "mysql" - ], - "support": { - "source": "https://github.com/dg/MySQL-dump/tree/master" - }, - "install-path": "../dg/mysql-dump" - }, - { - "name": "doctrine/inflector", - "version": "2.0.3", - "version_normalized": "2.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "time": "2020-05-29T15:13:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "install-path": "../doctrine/inflector" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "time": "2020-11-10T18:47:58+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "install-path": "../doctrine/instantiator" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.2.0", - "version_normalized": "7.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" - }, - "time": "2020-10-10T11:47:56+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.2.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" - } - ], - "install-path": "../guzzlehttp/guzzle" - }, - { - "name": "guzzlehttp/promises", - "version": "1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "time": "2020-09-30T07:37:28+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.0" - }, - "install-path": "../guzzlehttp/promises" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "time": "2020-09-30T07:37:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.7.0" - }, - "install-path": "../guzzlehttp/psr7" - }, - { - "name": "hautelook/phpass", - "version": "0.3.5", - "version_normalized": "0.3.5.0", - "source": { - "type": "git", - "url": "https://github.com/hautelook/phpass.git", - "reference": "b4cbd9b67ed3ef5672ec79d8e0c46d24bd844abd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hautelook/phpass/zipball/b4cbd9b67ed3ef5672ec79d8e0c46d24bd844abd", - "reference": "b4cbd9b67ed3ef5672ec79d8e0c46d24bd844abd", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2012-08-31T00:00:00+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Hautelook": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Public Domain" - ], - "authors": [ - { - "name": "Solar Designer", - "email": "solar@openwall.com", - "homepage": "http://openwall.com/phpass/" - } - ], - "description": "Portable PHP password hashing framework", - "homepage": "http://github.com/hautelook/phpass/", - "keywords": [ - "blowfish", - "crypt", - "password", - "security" - ], - "support": { - "issues": "https://github.com/hautelook/phpass/issues", - "source": "https://github.com/hautelook/phpass/tree/0.3.x" - }, - "install-path": "../hautelook/phpass" - }, - { - "name": "hoa/consistency", - "version": "1.17.05.02", - "version_normalized": "1.17.05.02", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Consistency.git", - "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Consistency/zipball/fd7d0adc82410507f332516faf655b6ed22e4c2f", - "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f", - "shasum": "" - }, - "require": { - "hoa/exception": "~1.0", - "php": ">=5.5.0" - }, - "require-dev": { - "hoa/stream": "~1.0", - "hoa/test": "~2.0" - }, - "time": "2017-05-02T12:18:12+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Consistency\\": "." - }, - "files": [ - "Prelude.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Consistency library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "autoloader", - "callable", - "consistency", - "entity", - "flex", - "keyword", - "library" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Consistency", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Consistency/issues", - "source": "https://central.hoa-project.net/Resource/Library/Consistency" - }, - "install-path": "../hoa/consistency" - }, - { - "name": "hoa/console", - "version": "3.17.05.02", - "version_normalized": "3.17.05.02", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Console.git", - "reference": "e231fd3ea70e6d773576ae78de0bdc1daf331a66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Console/zipball/e231fd3ea70e6d773576ae78de0bdc1daf331a66", - "reference": "e231fd3ea70e6d773576ae78de0bdc1daf331a66", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/file": "~1.0", - "hoa/protocol": "~1.0", - "hoa/stream": "~1.0", - "hoa/ustring": "~4.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "suggest": { - "ext-pcntl": "To enable hoa://Event/Console/Window:resize.", - "hoa/dispatcher": "To use the console kit.", - "hoa/router": "To use the console kit." - }, - "time": "2017-05-02T12:26:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Console\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Console library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "autocompletion", - "chrome", - "cli", - "console", - "cursor", - "getoption", - "library", - "option", - "parser", - "processus", - "readline", - "terminfo", - "tput", - "window" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Console", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Console/issues", - "source": "https://central.hoa-project.net/Resource/Library/Console" - }, - "install-path": "../hoa/console" - }, - { - "name": "hoa/event", - "version": "1.17.01.13", - "version_normalized": "1.17.01.13", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Event.git", - "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Event/zipball/6c0060dced212ffa3af0e34bb46624f990b29c54", - "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-01-13T15:30:50+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Event\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Event library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "event", - "library", - "listener", - "observer" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Event", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Event/issues", - "source": "https://central.hoa-project.net/Resource/Library/Event" - }, - "install-path": "../hoa/event" - }, - { - "name": "hoa/exception", - "version": "1.17.01.16", - "version_normalized": "1.17.01.16", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Exception.git", - "reference": "091727d46420a3d7468ef0595651488bfc3a458f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Exception/zipball/091727d46420a3d7468ef0595651488bfc3a458f", - "reference": "091727d46420a3d7468ef0595651488bfc3a458f", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-01-16T07:53:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Exception\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Exception library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "exception", - "library" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Exception", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Exception/issues", - "source": "https://central.hoa-project.net/Resource/Library/Exception" - }, - "install-path": "../hoa/exception" - }, - { - "name": "hoa/file", - "version": "1.17.07.11", - "version_normalized": "1.17.07.11", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/File.git", - "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/File/zipball/35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", - "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/iterator": "~2.0", - "hoa/stream": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-07-11T07:42:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\File\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\File library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "Socket", - "directory", - "file", - "finder", - "library", - "link", - "temporary" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/File", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/File/issues", - "source": "https://central.hoa-project.net/Resource/Library/File" - }, - "install-path": "../hoa/file" - }, - { - "name": "hoa/iterator", - "version": "2.17.01.10", - "version_normalized": "2.17.01.10", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Iterator.git", - "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Iterator/zipball/d1120ba09cb4ccd049c86d10058ab94af245f0cc", - "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-01-10T10:34:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Iterator\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Iterator library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "iterator", - "library" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Iterator", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Iterator/issues", - "source": "https://central.hoa-project.net/Resource/Library/Iterator" - }, - "install-path": "../hoa/iterator" - }, - { - "name": "hoa/protocol", - "version": "1.17.01.14", - "version_normalized": "1.17.01.14", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Protocol.git", - "reference": "5c2cf972151c45f373230da170ea015deecf19e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Protocol/zipball/5c2cf972151c45f373230da170ea015deecf19e2", - "reference": "5c2cf972151c45f373230da170ea015deecf19e2", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-01-14T12:26:10+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Protocol\\": "." - }, - "files": [ - "Wrapper.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Protocol library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "library", - "protocol", - "resource", - "stream", - "wrapper" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Protocol", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Protocol/issues", - "source": "https://central.hoa-project.net/Resource/Library/Protocol" - }, - "install-path": "../hoa/protocol" - }, - { - "name": "hoa/stream", - "version": "1.17.02.21", - "version_normalized": "1.17.02.21", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Stream.git", - "reference": "3293cfffca2de10525df51436adf88a559151d82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Stream/zipball/3293cfffca2de10525df51436adf88a559151d82", - "reference": "3293cfffca2de10525df51436adf88a559151d82", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/protocol": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "time": "2017-02-21T16:01:06+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Stream\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Stream library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "Context", - "bucket", - "composite", - "filter", - "in", - "library", - "out", - "protocol", - "stream", - "wrapper" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Stream", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Stream/issues", - "source": "https://central.hoa-project.net/Resource/Library/Stream" - }, - "install-path": "../hoa/stream" - }, - { - "name": "hoa/ustring", - "version": "4.17.01.16", - "version_normalized": "4.17.01.16", - "source": { - "type": "git", - "url": "https://github.com/hoaproject/Ustring.git", - "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Ustring/zipball/e6326e2739178799b1fe3fdd92029f9517fa17a0", - "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0", - "shasum": "" - }, - "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" - }, - "suggest": { - "ext-iconv": "ext/iconv must be present (or a third implementation) to use Hoa\\Ustring::transcode().", - "ext-intl": "To get a better Hoa\\Ustring::toAscii() and Hoa\\Ustring::compareTo()." - }, - "time": "2017-01-16T07:08:25+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Hoa\\Ustring\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Ustring library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "library", - "search", - "string", - "unicode" - ], - "support": { - "docs": "https://central.hoa-project.net/Documentation/Library/Ustring", - "email": "support@hoa-project.net", - "forum": "https://users.hoa-project.net/", - "irc": "irc://chat.freenode.net/hoaproject", - "issues": "https://github.com/hoaproject/Ustring/issues", - "source": "https://central.hoa-project.net/Resource/Library/Ustring" - }, - "install-path": "../hoa/ustring" - }, - { - "name": "illuminate/collections", - "version": "v8.25.0", - "version_normalized": "8.25.0.0", - "source": { - "type": "git", - "url": "https://github.com/illuminate/collections.git", - "reference": "3c968b76c395c4ac94d378d4bdeea1af0e8ad44c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/collections/zipball/3c968b76c395c4ac94d378d4bdeea1af0e8ad44c", - "reference": "3c968b76c395c4ac94d378d4bdeea1af0e8ad44c", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "php": "^7.3|^8.0" - }, - "suggest": { - "symfony/var-dumper": "Required to use the dump method (^5.1.4)." - }, - "time": "2021-01-20T14:16:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Collections package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "install-path": "../illuminate/collections" - }, - { - "name": "illuminate/contracts", - "version": "v8.25.0", - "version_normalized": "8.25.0.0", - "source": { - "type": "git", - "url": "https://github.com/illuminate/contracts.git", - "reference": "b91459a9a0bd0de204c3cae6859ebd02dbcee6c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/b91459a9a0bd0de204c3cae6859ebd02dbcee6c6", - "reference": "b91459a9a0bd0de204c3cae6859ebd02dbcee6c6", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/simple-cache": "^1.0" - }, - "time": "2021-01-20T14:18:13+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Illuminate\\Contracts\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Contracts package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "install-path": "../illuminate/contracts" - }, - { - "name": "illuminate/macroable", - "version": "v8.25.0", - "version_normalized": "8.25.0.0", - "source": { - "type": "git", - "url": "https://github.com/illuminate/macroable.git", - "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/macroable/zipball/300aa13c086f25116b5f3cde3ca54ff5c822fb05", - "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "time": "2020-10-27T15:20:30+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Macroable package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "install-path": "../illuminate/macroable" - }, - { - "name": "illuminate/support", - "version": "v8.25.0", - "version_normalized": "8.25.0.0", - "source": { - "type": "git", - "url": "https://github.com/illuminate/support.git", - "reference": "930ae59aea86acd6abba2ab9c84bcfe41b1b7eec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/930ae59aea86acd6abba2ab9c84bcfe41b1b7eec", - "reference": "930ae59aea86acd6abba2ab9c84bcfe41b1b7eec", - "shasum": "" - }, - "require": { - "doctrine/inflector": "^1.4|^2.0", - "ext-json": "*", - "ext-mbstring": "*", - "illuminate/collections": "^8.0", - "illuminate/contracts": "^8.0", - "illuminate/macroable": "^8.0", - "nesbot/carbon": "^2.31", - "php": "^7.3|^8.0", - "voku/portable-ascii": "^1.4.8" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "suggest": { - "illuminate/filesystem": "Required to use the composer class (^8.0).", - "ramsey/uuid": "Required to use Str::uuid() (^4.0).", - "symfony/process": "Required to use the composer class (^5.1.4).", - "symfony/var-dumper": "Required to use the dd function (^5.1.4).", - "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)." - }, - "time": "2021-01-25T20:54:50+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Illuminate Support package.", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "install-path": "../illuminate/support" - }, - { - "name": "lucatume/wp-browser", - "version": "3.0.5.1", - "version_normalized": "3.0.5.1", - "source": { - "type": "git", - "url": "https://github.com/lucatume/wp-browser.git", - "reference": "3cc816074cdeebe27e46312f4dae23738a87f78e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lucatume/wp-browser/zipball/3cc816074cdeebe27e46312f4dae23738a87f78e", - "reference": "3cc816074cdeebe27e46312f4dae23738a87f78e", - "shasum": "" - }, - "require": { - "antecedent/patchwork": "^2.0", - "codeception/codeception": "^2.5 || ^3.0 || ^4.0", - "dg/mysql-dump": "^1.3", - "ext-fileinfo": "*", - "ext-iconv": "*", - "ext-json": "*", - "ext-pdo": "*", - "mikehaertl/php-shellcommand": "^1.6", - "mikemclin/laravel-wp-password": "~2.0.0", - "php": ">=5.6.0", - "vria/nodiacritic": "^0.1.2", - "wp-cli/wp-cli": ">=2.0 <3.0.0", - "zordius/lightncandy": "^1.2" - }, - "require-dev": { - "erusev/parsedown": "^1.7", - "gumlet/php-image-resize": "^1.6", - "lucatume/codeception-snapshot-assertions": "^0.2", - "mikey179/vfsstream": "^1.6", - "victorjonsson/markdowndocs": "dev-master", - "vlucas/phpdotenv": "^3.0", - "wp-cli/wp-cli-bundle": "*" - }, - "suggest": { - "codeception/module-asserts": "Codeception 4.0 compatibility.", - "codeception/module-cli": "Codeception 4.0 compatibility; required by the WPCLI module.", - "codeception/module-db": "Codeception 4.0 compatibility; required by the WPDb module.", - "codeception/module-filesystem": "Codeception 4.0 compatibility; required by the WPFilesystem module.", - "codeception/module-phpbrowser": "Codeception 4.0 compatibility; required by the WPBrowser module.", - "codeception/module-webdriver": "Codeception 4.0 compatibility; required by the WPWebDriver module.", - "codeception/util-universalframework": "Codeception 4.0 compatibility; required by the WordPress framework module.", - "gumlet/php-image-resize": "To handle runtime image modification in the WPDb::haveAttachmentInDatabase method.", - "vlucas/phpdotenv:^4.0": "To manage more complex environment file based configuration of the suites." - }, - "time": "2021-01-13T08:37:29+00:00", - "type": "library", - "extra": { - "_hash": "484f861f69198089cab0e642f27e5653" - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Codeception\\": "src/Codeception", - "tad\\": "src/tad" - }, - "files": [ - "src/tad/WPBrowser/utils.php", - "src/tad/WPBrowser/wp-polyfills.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "theAverageDev (Luca Tumedei)", - "email": "luca@theaveragedev.com", - "homepage": "http://theaveragedev.com", - "role": "Developer" - } - ], - "description": "WordPress extension of the PhpBrowser class.", - "homepage": "http://github.com/lucatume/wp-browser", - "keywords": [ - "codeception", - "wordpress" - ], - "support": { - "issues": "https://github.com/lucatume/wp-browser/issues", - "source": "https://github.com/lucatume/wp-browser/tree/3.0.5.1" - }, - "funding": [ - { - "url": "https://github.com/lucatume", - "type": "github" - } - ], - "install-path": "../lucatume/wp-browser" - }, - { - "name": "mikehaertl/php-shellcommand", - "version": "1.6.3", - "version_normalized": "1.6.3.0", - "source": { - "type": "git", - "url": "https://github.com/mikehaertl/php-shellcommand.git", - "reference": "fe86ec847877b83bf61a96719e7f2e3b3e516a6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mikehaertl/php-shellcommand/zipball/fe86ec847877b83bf61a96719e7f2e3b3e516a6b", - "reference": "fe86ec847877b83bf61a96719e7f2e3b3e516a6b", - "shasum": "" - }, - "require": { - "php": ">= 5.3.0" - }, - "require-dev": { - "phpunit/phpunit": ">4.0 <=9.4" - }, - "time": "2020-11-23T17:31:15+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "mikehaertl\\shellcommand\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Härtl", - "email": "haertl.mike@gmail.com" - } - ], - "description": "An object oriented interface to shell commands", - "keywords": [ - "shell" - ], - "support": { - "issues": "https://github.com/mikehaertl/php-shellcommand/issues", - "source": "https://github.com/mikehaertl/php-shellcommand/tree/1.6.3" - }, - "install-path": "../mikehaertl/php-shellcommand" - }, - { - "name": "mikemclin/laravel-wp-password", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/mikemclin/laravel-wp-password.git", - "reference": "84ff1113ff6866cdb0350c176dc3c843383e4819" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mikemclin/laravel-wp-password/zipball/84ff1113ff6866cdb0350c176dc3c843383e4819", - "reference": "84ff1113ff6866cdb0350c176dc3c843383e4819", - "shasum": "" - }, - "require": { - "hautelook/phpass": "0.3.*", - "illuminate/support": ">=4.0.0", - "php": ">=5.3.0" - }, - "replace": { - "mikemclin/laravel-wp-password": "self.version" - }, - "require-dev": { - "mockery/mockery": "~0.9", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, - "time": "2018-01-11T14:12:02+00:00", - "type": "laravel-package", - "extra": { - "laravel": { - "providers": [ - "MikeMcLin\\WpPassword\\WpPasswordProvider" - ], - "aliases": { - "WpPassword": "MikeMcLin\\WpPassword\\Facades\\WpPassword" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "MikeMcLin\\WpPassword\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike McLin", - "email": "mike@mikemclin.com", - "homepage": "http://mikemclin.net" - } - ], - "description": "Laravel package that checks and creates WordPress password hashes", - "homepage": "https://github.com/mikemclin/laravel-wp-password", - "keywords": [ - "hashing", - "laravel", - "password", - "wordpress" - ], - "support": { - "issues": "https://github.com/mikemclin/laravel-wp-password/issues", - "source": "https://github.com/mikemclin/laravel-wp-password/tree/2.0.1" - }, - "install-path": "../mikemclin/laravel-wp-password" - }, - { - "name": "mustache/mustache", - "version": "v2.13.0", - "version_normalized": "2.13.0.0", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/mustache.php.git", - "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e95c5a008c23d3151d59ea72484d4f72049ab7f4", - "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4", - "shasum": "" - }, - "require": { - "php": ">=5.2.4" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~1.11", - "phpunit/phpunit": "~3.7|~4.0|~5.0" - }, - "time": "2019-11-23T21:40:31+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Mustache": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "A Mustache implementation in PHP.", - "homepage": "https://github.com/bobthecow/mustache.php", - "keywords": [ - "mustache", - "templating" - ], - "support": { - "issues": "https://github.com/bobthecow/mustache.php/issues", - "source": "https://github.com/bobthecow/mustache.php/tree/master" - }, - "install-path": "../mustache/mustache" - }, - { - "name": "myclabs/deep-copy", - "version": "1.10.2", - "version_normalized": "1.10.2.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "time": "2020-11-13T09:40:50+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "install-path": "../myclabs/deep-copy" - }, - { - "name": "nesbot/carbon", - "version": "2.43.0", - "version_normalized": "2.43.0.0", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d32c57d8389113742f4a88725a170236470012e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d32c57d8389113742f4a88725a170236470012e2", - "reference": "d32c57d8389113742f4a88725a170236470012e2", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.1.8 || ^8.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^3.4 || ^4.0 || ^5.0" - }, - "require-dev": { - "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", - "kylekatarnls/multi-tester": "^2.0", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5 || ^8.0", - "squizlabs/php_codesniffer": "^3.4" - }, - "time": "2020-12-17T20:55:32+00:00", - "bin": [ - "bin/carbon" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - }, - { - "name": "kylekatarnls", - "homepage": "http://github.com/kylekatarnls" - } - ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "http://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "support": { - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "funding": [ - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "install-path": "../nesbot/carbon" - }, - { - "name": "nikic/php-parser", - "version": "v4.10.4", - "version_normalized": "4.10.4.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "time": "2020-12-20T10:01:03+00:00", - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" - }, - "install-path": "../nikic/php-parser" - }, - { - "name": "phar-io/manifest", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "time": "2020-06-27T14:33:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" - }, - "install-path": "../phar-io/manifest" - }, - { - "name": "phar-io/version", - "version": "3.0.4", - "version_normalized": "3.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", - "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "time": "2020-12-13T23:18:30+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.0.4" - }, - "install-path": "../phar-io/version" - }, - { - "name": "php-webdriver/webdriver", - "version": "1.9.0", - "version_normalized": "1.9.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-webdriver/php-webdriver.git", - "reference": "e3633154554605274cc9d59837f55a7427d72003" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/e3633154554605274cc9d59837f55a7427d72003", - "reference": "e3633154554605274cc9d59837f55a7427d72003", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-zip": "*", - "php": "^5.6 || ~7.0 || ^8.0", - "symfony/polyfill-mbstring": "^1.12", - "symfony/process": "^2.8 || ^3.1 || ^4.0 || ^5.0" - }, - "replace": { - "facebook/webdriver": "*" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "ondram/ci-detector": "^2.1 || ^3.5", - "php-coveralls/php-coveralls": "^2.4", - "php-mock/php-mock-phpunit": "^1.1 || ^2.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpunit/phpunit": "^5.7 || ^7 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3.5", - "symfony/var-dumper": "^3.3 || ^4.0 || ^5.0" - }, - "suggest": { - "ext-SimpleXML": "For Firefox profile creation" - }, - "time": "2020-11-19T15:21:05+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.8.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Facebook\\WebDriver\\": "lib/" - }, - "files": [ - "lib/Exception/TimeoutException.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A PHP client for Selenium WebDriver. Previously facebook/webdriver.", - "homepage": "https://github.com/php-webdriver/php-webdriver", - "keywords": [ - "Chromedriver", - "geckodriver", - "php", - "selenium", - "webdriver" - ], - "support": { - "issues": "https://github.com/php-webdriver/php-webdriver/issues", - "source": "https://github.com/php-webdriver/php-webdriver/tree/1.9.0" - }, - "install-path": "../php-webdriver/webdriver" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "time": "2020-06-27T09:03:43+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "install-path": "../phpdocumentor/reflection-common" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2" - }, - "time": "2020-09-03T19:13:55+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" - }, - "install-path": "../phpdocumentor/reflection-docblock" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*" - }, - "time": "2020-09-17T18:55:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" - }, - "install-path": "../phpdocumentor/type-resolver" - }, - { - "name": "phpspec/prophecy", - "version": "1.12.2", - "version_normalized": "1.12.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "245710e971a030f42e08f4912863805570f23d39" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", - "reference": "245710e971a030f42e08f4912863805570f23d39", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "time": "2020-12-19T10:15:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.12.2" - }, - "install-path": "../phpspec/prophecy" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.5", - "version_normalized": "9.2.5.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" - }, - "time": "2020-11-28T06:44:49+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/php-code-coverage" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.5", - "version_normalized": "3.0.5.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-09-28T05:57:25+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/php-file-iterator" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "version_normalized": "3.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "time": "2020-09-28T05:58:55+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/php-invoker" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "version_normalized": "2.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T05:33:50+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/php-text-template" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "version_normalized": "5.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:16:10+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/php-timer" - }, - { - "name": "phpunit/phpunit", - "version": "9.5.1", - "version_normalized": "9.5.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", - "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", - "sebastian/version": "^3.0.2" - }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" - }, - "time": "2021-01-17T07:42:25+00:00", - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ], - "files": [ - "src/Framework/Assert/Functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1" - }, - "funding": [ - { - "url": "https://phpunit.de/donate.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../phpunit/phpunit" - }, - { - "name": "psr/container", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-02-14T16:28:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/master" - }, - "install-path": "../psr/container" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "time": "2019-01-08T18:20:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "install-path": "../psr/event-dispatcher" - }, - { - "name": "psr/http-client", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" - }, - "time": "2020-06-29T06:28:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client/tree/master" - }, - "install-path": "../psr/http-client" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06T14:39:51+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "install-path": "../psr/http-message" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-10-23T01:57:42+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" - }, - "install-path": "../psr/simple-cache" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "time": "2019-03-08T08:55:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, - "install-path": "../ralouphie/getallheaders" - }, - { - "name": "rmccue/requests", - "version": "v1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/rmccue/Requests.git", - "reference": "87932f52ffad70504d93f04f15690cf16a089546" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rmccue/Requests/zipball/87932f52ffad70504d93f04f15690cf16a089546", - "reference": "87932f52ffad70504d93f04f15690cf16a089546", - "shasum": "" - }, - "require": { - "php": ">=5.2" - }, - "require-dev": { - "requests/test-server": "dev-master" - }, - "time": "2016-10-13T00:11:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Requests": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Ryan McCue", - "homepage": "http://ryanmccue.info" - } - ], - "description": "A HTTP library written in PHP, for human beings.", - "homepage": "http://github.com/rmccue/Requests", - "keywords": [ - "curl", - "fsockopen", - "http", - "idna", - "ipv6", - "iri", - "sockets" - ], - "support": { - "issues": "https://github.com/rmccue/Requests/issues", - "source": "https://github.com/rmccue/Requests/tree/master" - }, - "install-path": "../rmccue/requests" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-09-28T06:08:49+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/cli-parser" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "version_normalized": "1.0.8.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:08:54+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/code-unit" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "version_normalized": "2.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-09-28T05:30:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/code-unit-reverse-lookup" - }, - { - "name": "sebastian/comparator", - "version": "4.0.6", - "version_normalized": "4.0.6.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T15:49:45+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/comparator" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T15:52:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/complexity" - }, - { - "name": "sebastian/diff", - "version": "4.0.4", - "version_normalized": "4.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "time": "2020-10-26T13:10:38+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/diff" - }, - { - "name": "sebastian/environment", - "version": "5.1.3", - "version_normalized": "5.1.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "time": "2020-09-28T05:52:38+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/environment" - }, - { - "name": "sebastian/exporter", - "version": "4.0.3", - "version_normalized": "4.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "time": "2020-09-28T05:24:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/exporter" - }, - { - "name": "sebastian/global-state", - "version": "5.0.2", - "version_normalized": "5.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "time": "2020-10-26T15:55:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/global-state" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-11-28T06:42:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/lines-of-code" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "version_normalized": "4.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:12:34+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/object-enumerator" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "version_normalized": "2.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:14:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/object-reflector" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.4", - "version_normalized": "4.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:17:30+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/recursion-context" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "time": "2020-09-28T06:45:17+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/resource-operations" - }, - { - "name": "sebastian/type", - "version": "2.3.1", - "version_normalized": "2.3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "time": "2020-10-26T13:18:59+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/type" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "version_normalized": "3.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "time": "2020-09-28T06:39:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "install-path": "../sebastian/version" - }, - { - "name": "symfony/browser-kit", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", - "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0" - }, - "require-dev": { - "symfony/css-selector": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0" - }, - "suggest": { - "symfony/process": "" - }, - "time": "2021-01-27T12:56:27+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/browser-kit" - }, - { - "name": "symfony/console", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d62ec79478b55036f65e2602e282822b8eaaff0a", - "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" - }, - "conflict": { - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "time": "2021-01-27T10:15:41+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/console" - }, - { - "name": "symfony/css-selector", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "time": "2021-01-27T10:01:46+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Converts CSS selectors to XPath expressions", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/css-selector" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "time": "2020-09-07T11:33:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/deprecation-contracts" - }, - { - "name": "symfony/dom-crawler", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5d89ceb53ec65e1973a555072fac8ed5ecad3384", - "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "time": "2021-01-27T10:01:46+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases DOM navigation for HTML and XML documents", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/dom-crawler" - }, - { - "name": "symfony/event-dispatcher", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4f9760f8074978ad82e2ce854dff79a71fe45367", - "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "time": "2021-01-27T10:36:42+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/event-dispatcher" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "time": "2020-09-07T11:33:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/event-dispatcher-contracts" - }, - { - "name": "symfony/finder", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "time": "2021-01-27T10:01:46+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/finder" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "time": "2021-01-07T16:49:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-ctype" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "267a9adeb8ecb8071040a740930e077cdfb987af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af", - "reference": "267a9adeb8ecb8071040a740930e077cdfb987af", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2021-01-07T16:49:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-grapheme" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "6e971c891537eb617a00bb07a43d182a6915faba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", - "reference": "6e971c891537eb617a00bb07a43d182a6915faba", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2021-01-07T17:09:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-normalizer" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2021-01-07T16:49:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-mbstring" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "time": "2021-01-07T16:49:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php73" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.22.0", - "version_normalized": "1.22.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "time": "2021-01-07T16:49:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php80" - }, - { - "name": "symfony/process", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", - "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" - }, - "time": "2021-01-27T10:15:41+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/process" - }, - { - "name": "symfony/service-contracts", - "version": "v2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "time": "2020-09-07T11:33:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/service-contracts" - }, - { - "name": "symfony/string", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "c95468897f408dd0aca2ff582074423dd0455122" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/c95468897f408dd0aca2ff582074423dd0455122", - "reference": "c95468897f408dd0aca2ff582074423dd0455122", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" - }, - "time": "2021-01-25T15:14:59+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "files": [ - "Resources/functions.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/string" - }, - { - "name": "symfony/translation", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/c021864d4354ee55160ddcfd31dc477a1bc77949", - "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/translation-contracts": "^2.3" - }, - "conflict": { - "symfony/config": "<4.4", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" - }, - "provide": { - "symfony/translation-implementation": "2.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "time": "2021-01-27T10:15:41+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/translation" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "time": "2020-09-28T13:05:58+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.3.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/translation-contracts" - }, - { - "name": "symfony/yaml", - "version": "v5.2.2", - "version_normalized": "5.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "6bb8b36c6dea8100268512bf46e858c8eb5c545e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6bb8b36c6dea8100268512bf46e858c8eb5c545e", - "reference": "6bb8b36c6dea8100268512bf46e858c8eb5c545e", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<4.4" - }, - "require-dev": { - "symfony/console": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "time": "2021-01-27T10:01:46+00:00", - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/yaml" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.0", - "version_normalized": "1.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "time": "2020-07-12T23:59:07+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "install-path": "../theseer/tokenizer" - }, - { - "name": "voku/portable-ascii", - "version": "1.5.6", - "version_normalized": "1.5.6.0", - "source": { - "type": "git", - "url": "https://github.com/voku/portable-ascii.git", - "reference": "80953678b19901e5165c56752d087fc11526017c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", - "reference": "80953678b19901e5165c56752d087fc11526017c", - "shasum": "" - }, - "require": { - "php": ">=7.0.0" - }, - "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" - }, - "suggest": { - "ext-intl": "Use Intl for transliterator_transliterate() support" - }, - "time": "2020-11-12T00:07:28+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "voku\\": "src/voku/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" - } - ], - "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", - "homepage": "https://github.com/voku/portable-ascii", - "keywords": [ - "ascii", - "clean", - "php" - ], - "support": { - "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.5.6" - }, - "funding": [ - { - "url": "https://www.paypal.me/moelleken", - "type": "custom" - }, - { - "url": "https://github.com/voku", - "type": "github" - }, - { - "url": "https://opencollective.com/portable-ascii", - "type": "open_collective" - }, - { - "url": "https://www.patreon.com/voku", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", - "type": "tidelift" - } - ], - "install-path": "../voku/portable-ascii" - }, - { - "name": "vria/nodiacritic", - "version": "0.1.2", - "version_normalized": "0.1.2.0", - "source": { - "type": "git", - "url": "https://github.com/vria/nodiacritic.git", - "reference": "3efeb60fb2586fe3ce8ff0f3c122d380717b8b07" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vria/nodiacritic/zipball/3efeb60fb2586fe3ce8ff0f3c122d380717b8b07", - "reference": "3efeb60fb2586fe3ce8ff0f3c122d380717b8b07", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "4.8.*" - }, - "time": "2016-09-17T22:03:11+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "VRia\\Utils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0" - ], - "authors": [ - { - "name": "Riabchenko Vlad", - "email": "contact@vria.eu", - "homepage": "http://vria.eu" - } - ], - "description": "Tiny helper function that removes all diacritical signs from characters", - "homepage": "https://github.com/vria/nodiacritic", - "keywords": [ - "accent", - "diacritic", - "filter", - "string", - "text" - ], - "support": { - "email": "contact@vria.eu", - "issues": "https://github.com/vria/nodiacritic/issues", - "source": "https://github.com/vria/nodiacritic/tree/0.1.2" - }, - "install-path": "../vria/nodiacritic" - }, - { - "name": "webmozart/assert", - "version": "1.9.1", - "version_normalized": "1.9.1.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "time": "2020-07-08T17:02:28+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozart/assert/issues", - "source": "https://github.com/webmozart/assert/tree/master" - }, - "install-path": "../webmozart/assert" - }, - { - "name": "wp-cli/mustangostang-spyc", - "version": "0.6.3", - "version_normalized": "0.6.3.0", - "source": { - "type": "git", - "url": "https://github.com/wp-cli/spyc.git", - "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wp-cli/spyc/zipball/6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", - "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", - "shasum": "" - }, - "require": { - "php": ">=5.3.1" - }, - "require-dev": { - "phpunit/phpunit": "4.3.*@dev" - }, - "time": "2017-04-25T11:26:20+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Mustangostang\\": "src/" - }, - "files": [ - "includes/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "mustangostang", - "email": "vlad.andersen@gmail.com" - } - ], - "description": "A simple YAML loader/dumper class for PHP (WP-CLI fork)", - "homepage": "https://github.com/mustangostang/spyc/", - "support": { - "source": "https://github.com/wp-cli/spyc/tree/autoload" - }, - "install-path": "../wp-cli/mustangostang-spyc" - }, - { - "name": "wp-cli/php-cli-tools", - "version": "v0.11.11", - "version_normalized": "0.11.11.0", - "source": { - "type": "git", - "url": "https://github.com/wp-cli/php-cli-tools.git", - "reference": "fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f", - "reference": "fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f", - "shasum": "" - }, - "require": { - "php": ">= 5.3.0" - }, - "time": "2018-09-04T13:28:00+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "cli": "lib/" - }, - "files": [ - "lib/cli/cli.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "James Logsdon", - "email": "jlogsdon@php.net", - "role": "Developer" - }, - { - "name": "Daniel Bachhuber", - "email": "daniel@handbuilt.co", - "role": "Maintainer" - } - ], - "description": "Console utilities for PHP", - "homepage": "http://github.com/wp-cli/php-cli-tools", - "keywords": [ - "cli", - "console" - ], - "support": { - "issues": "https://github.com/wp-cli/php-cli-tools/issues", - "source": "https://github.com/wp-cli/php-cli-tools/tree/master" - }, - "install-path": "../wp-cli/php-cli-tools" - }, - { - "name": "wp-cli/wp-cli", - "version": "v2.4.1", - "version_normalized": "2.4.1.0", - "source": { - "type": "git", - "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "ceb18598e79befa9b2a37a51efbb34910628988b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/ceb18598e79befa9b2a37a51efbb34910628988b", - "reference": "ceb18598e79befa9b2a37a51efbb34910628988b", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "mustache/mustache": "~2.13", - "php": "^5.4 || ^7.0", - "rmccue/requests": "~1.6", - "symfony/finder": ">2.7", - "wp-cli/mustangostang-spyc": "^0.6.3", - "wp-cli/php-cli-tools": "~0.11.2" - }, - "require-dev": { - "roave/security-advisories": "dev-master", - "wp-cli/db-command": "^1.3 || ^2", - "wp-cli/entity-command": "^1.2 || ^2", - "wp-cli/extension-command": "^1.1 || ^2", - "wp-cli/package-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^2.1" - }, - "suggest": { - "ext-readline": "Include for a better --prompt implementation", - "ext-zip": "Needed to support extraction of ZIP archives when doing downloads or updates" - }, - "time": "2020-02-18T08:15:37+00:00", - "bin": [ - "bin/wp", - "bin/wp.bat" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "WP_CLI": "php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "WP-CLI framework", - "homepage": "https://wp-cli.org", - "keywords": [ - "cli", - "wordpress" - ], - "support": { - "docs": "https://make.wordpress.org/cli/handbook/", - "issues": "https://github.com/wp-cli/wp-cli/issues", - "source": "https://github.com/wp-cli/wp-cli" - }, - "install-path": "../wp-cli/wp-cli" - }, - { - "name": "zordius/lightncandy", - "version": "v1.2.5", - "version_normalized": "1.2.5.0", - "source": { - "type": "git", - "url": "https://github.com/zordius/lightncandy.git", - "reference": "37aa381e0f27d411a630062070c7a5a2174c62e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zordius/lightncandy/zipball/37aa381e0f27d411a630062070c7a5a2174c62e7", - "reference": "37aa381e0f27d411a630062070c7a5a2174c62e7", - "shasum": "" - }, - "require": { - "php": ">=7.1.0" - }, - "require-dev": { - "phpunit/phpunit": "^7" - }, - "time": "2020-03-08T06:00:24+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "LightnCandy\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Zordius Chen", - "email": "zordius@gmail.com" - } - ], - "description": "An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ).", - "homepage": "https://github.com/zordius/lightncandy", - "keywords": [ - "handlebars", - "logicless", - "mustache", - "php", - "template" - ], - "support": { - "issues": "https://github.com/zordius/lightncandy/issues", - "source": "https://github.com/zordius/lightncandy/tree/master" - }, - "install-path": "../zordius/lightncandy" - } - ], - "dev": true, - "dev-package-names": [ - "antecedent/patchwork", - "behat/gherkin", - "codeception/codeception", - "codeception/lib-asserts", - "codeception/lib-innerbrowser", - "codeception/module-asserts", - "codeception/module-cli", - "codeception/module-db", - "codeception/module-filesystem", - "codeception/module-phpbrowser", - "codeception/module-webdriver", - "codeception/phpunit-wrapper", - "codeception/stub", - "codeception/util-universalframework", - "dg/mysql-dump", - "doctrine/inflector", - "doctrine/instantiator", - "guzzlehttp/guzzle", - "guzzlehttp/promises", - "guzzlehttp/psr7", - "hautelook/phpass", - "hoa/consistency", - "hoa/console", - "hoa/event", - "hoa/exception", - "hoa/file", - "hoa/iterator", - "hoa/protocol", - "hoa/stream", - "hoa/ustring", - "illuminate/collections", - "illuminate/contracts", - "illuminate/macroable", - "illuminate/support", - "lucatume/wp-browser", - "mikehaertl/php-shellcommand", - "mikemclin/laravel-wp-password", - "mustache/mustache", - "myclabs/deep-copy", - "nesbot/carbon", - "nikic/php-parser", - "phar-io/manifest", - "phar-io/version", - "php-webdriver/webdriver", - "phpdocumentor/reflection-common", - "phpdocumentor/reflection-docblock", - "phpdocumentor/type-resolver", - "phpspec/prophecy", - "phpunit/php-code-coverage", - "phpunit/php-file-iterator", - "phpunit/php-invoker", - "phpunit/php-text-template", - "phpunit/php-timer", - "phpunit/phpunit", - "psr/container", - "psr/event-dispatcher", - "psr/http-client", - "psr/http-message", - "psr/simple-cache", - "ralouphie/getallheaders", - "rmccue/requests", - "sebastian/cli-parser", - "sebastian/code-unit", - "sebastian/code-unit-reverse-lookup", - "sebastian/comparator", - "sebastian/complexity", - "sebastian/diff", - "sebastian/environment", - "sebastian/exporter", - "sebastian/global-state", - "sebastian/lines-of-code", - "sebastian/object-enumerator", - "sebastian/object-reflector", - "sebastian/recursion-context", - "sebastian/resource-operations", - "sebastian/type", - "sebastian/version", - "symfony/browser-kit", - "symfony/console", - "symfony/css-selector", - "symfony/deprecation-contracts", - "symfony/dom-crawler", - "symfony/event-dispatcher", - "symfony/event-dispatcher-contracts", - "symfony/finder", - "symfony/polyfill-ctype", - "symfony/polyfill-intl-grapheme", - "symfony/polyfill-intl-normalizer", - "symfony/polyfill-mbstring", - "symfony/polyfill-php73", - "symfony/polyfill-php80", - "symfony/process", - "symfony/service-contracts", - "symfony/string", - "symfony/translation", - "symfony/translation-contracts", - "symfony/yaml", - "theseer/tokenizer", - "voku/portable-ascii", - "vria/nodiacritic", - "webmozart/assert", - "wp-cli/mustangostang-spyc", - "wp-cli/php-cli-tools", - "wp-cli/wp-cli", - "zordius/lightncandy" - ] -} diff --git a/woocommerce-jadlog/vendor/composer/installed.php b/woocommerce-jadlog/vendor/composer/installed.php deleted file mode 100644 index 198ac44c..00000000 --- a/woocommerce-jadlog/vendor/composer/installed.php +++ /dev/null @@ -1,1026 +0,0 @@ - - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, - 'name' => 'jadlog/woocommerce-jadlog', - ), - 'versions' => - array ( - 'antecedent/patchwork' => - array ( - 'pretty_version' => '2.1.12', - 'version' => '2.1.12.0', - 'aliases' => - array ( - ), - 'reference' => 'b98e046dd4c0acc34a0846604f06f6111654d9ea', - ), - 'behat/gherkin' => - array ( - 'pretty_version' => 'v4.7.1', - 'version' => '4.7.1.0', - 'aliases' => - array ( - ), - 'reference' => '987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd', - ), - 'codeception/codeception' => - array ( - 'pretty_version' => '4.1.16', - 'version' => '4.1.16.0', - 'aliases' => - array ( - ), - 'reference' => 'daf4fe110b33855252009a0dcab87ce8bcf7c009', - ), - 'codeception/lib-asserts' => - array ( - 'pretty_version' => '1.13.2', - 'version' => '1.13.2.0', - 'aliases' => - array ( - ), - 'reference' => '184231d5eab66bc69afd6b9429344d80c67a33b6', - ), - 'codeception/lib-innerbrowser' => - array ( - 'pretty_version' => '1.3.6', - 'version' => '1.3.6.0', - 'aliases' => - array ( - ), - 'reference' => '41b79ba6761001bdb1f373a347400180693ad4e7', - ), - 'codeception/module-asserts' => - array ( - 'pretty_version' => '1.3.1', - 'version' => '1.3.1.0', - 'aliases' => - array ( - ), - 'reference' => '59374f2fef0cabb9e8ddb53277e85cdca74328de', - ), - 'codeception/module-cli' => - array ( - 'pretty_version' => '1.1.1', - 'version' => '1.1.1.0', - 'aliases' => - array ( - ), - 'reference' => '1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f', - ), - 'codeception/module-db' => - array ( - 'pretty_version' => '1.1.0', - 'version' => '1.1.0.0', - 'aliases' => - array ( - ), - 'reference' => '8c8076cd05d4db95798acd7dba2a56578210982c', - ), - 'codeception/module-filesystem' => - array ( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '781be167fb1557bfc9b61e0a4eac60a32c534ec1', - ), - 'codeception/module-phpbrowser' => - array ( - 'pretty_version' => '1.0.2', - 'version' => '1.0.2.0', - 'aliases' => - array ( - ), - 'reference' => '770a6be4160a5c0c08d100dd51bff35f6056bbf1', - ), - 'codeception/module-webdriver' => - array ( - 'pretty_version' => '1.2.0', - 'version' => '1.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '63ea08880a44df809bdfbca08597e1b68cee9f87', - ), - 'codeception/phpunit-wrapper' => - array ( - 'pretty_version' => '9.0.6', - 'version' => '9.0.6.0', - 'aliases' => - array ( - ), - 'reference' => 'b0c06abb3181eedca690170f7ed0fd26a70bfacc', - ), - 'codeception/stub' => - array ( - 'pretty_version' => '3.7.0', - 'version' => '3.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '468dd5fe659f131fc997f5196aad87512f9b1304', - ), - 'codeception/util-universalframework' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'cc381f364c6d24f9b9c7b70a4c724949725f491a', - ), - 'dg/mysql-dump' => - array ( - 'pretty_version' => 'v1.5.1', - 'version' => '1.5.1.0', - 'aliases' => - array ( - ), - 'reference' => 'e0e287b715b43293773a8b0edf8514f606e01780', - ), - 'doctrine/inflector' => - array ( - 'pretty_version' => '2.0.3', - 'version' => '2.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '9cf661f4eb38f7c881cac67c75ea9b00bf97b210', - ), - 'doctrine/instantiator' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b', - ), - 'facebook/webdriver' => - array ( - 'replaced' => - array ( - 0 => '*', - ), - ), - 'guzzlehttp/guzzle' => - array ( - 'pretty_version' => '7.2.0', - 'version' => '7.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '0aa74dfb41ae110835923ef10a9d803a22d50e79', - ), - 'guzzlehttp/promises' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => '60d379c243457e073cff02bc323a2a86cb355631', - ), - 'guzzlehttp/psr7' => - array ( - 'pretty_version' => '1.7.0', - 'version' => '1.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3', - ), - 'hautelook/phpass' => - array ( - 'pretty_version' => '0.3.5', - 'version' => '0.3.5.0', - 'aliases' => - array ( - ), - 'reference' => 'b4cbd9b67ed3ef5672ec79d8e0c46d24bd844abd', - ), - 'hoa/consistency' => - array ( - 'pretty_version' => '1.17.05.02', - 'version' => '1.17.05.02', - 'aliases' => - array ( - ), - 'reference' => 'fd7d0adc82410507f332516faf655b6ed22e4c2f', - ), - 'hoa/console' => - array ( - 'pretty_version' => '3.17.05.02', - 'version' => '3.17.05.02', - 'aliases' => - array ( - ), - 'reference' => 'e231fd3ea70e6d773576ae78de0bdc1daf331a66', - ), - 'hoa/event' => - array ( - 'pretty_version' => '1.17.01.13', - 'version' => '1.17.01.13', - 'aliases' => - array ( - ), - 'reference' => '6c0060dced212ffa3af0e34bb46624f990b29c54', - ), - 'hoa/exception' => - array ( - 'pretty_version' => '1.17.01.16', - 'version' => '1.17.01.16', - 'aliases' => - array ( - ), - 'reference' => '091727d46420a3d7468ef0595651488bfc3a458f', - ), - 'hoa/file' => - array ( - 'pretty_version' => '1.17.07.11', - 'version' => '1.17.07.11', - 'aliases' => - array ( - ), - 'reference' => '35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca', - ), - 'hoa/iterator' => - array ( - 'pretty_version' => '2.17.01.10', - 'version' => '2.17.01.10', - 'aliases' => - array ( - ), - 'reference' => 'd1120ba09cb4ccd049c86d10058ab94af245f0cc', - ), - 'hoa/protocol' => - array ( - 'pretty_version' => '1.17.01.14', - 'version' => '1.17.01.14', - 'aliases' => - array ( - ), - 'reference' => '5c2cf972151c45f373230da170ea015deecf19e2', - ), - 'hoa/stream' => - array ( - 'pretty_version' => '1.17.02.21', - 'version' => '1.17.02.21', - 'aliases' => - array ( - ), - 'reference' => '3293cfffca2de10525df51436adf88a559151d82', - ), - 'hoa/ustring' => - array ( - 'pretty_version' => '4.17.01.16', - 'version' => '4.17.01.16', - 'aliases' => - array ( - ), - 'reference' => 'e6326e2739178799b1fe3fdd92029f9517fa17a0', - ), - 'illuminate/collections' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '3c968b76c395c4ac94d378d4bdeea1af0e8ad44c', - ), - 'illuminate/contracts' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => 'b91459a9a0bd0de204c3cae6859ebd02dbcee6c6', - ), - 'illuminate/macroable' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '300aa13c086f25116b5f3cde3ca54ff5c822fb05', - ), - 'illuminate/support' => - array ( - 'pretty_version' => 'v8.25.0', - 'version' => '8.25.0.0', - 'aliases' => - array ( - ), - 'reference' => '930ae59aea86acd6abba2ab9c84bcfe41b1b7eec', - ), - 'jadlog/woocommerce-jadlog' => - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, - ), - 'lucatume/wp-browser' => - array ( - 'pretty_version' => '3.0.5.1', - 'version' => '3.0.5.1', - 'aliases' => - array ( - ), - 'reference' => '3cc816074cdeebe27e46312f4dae23738a87f78e', - ), - 'mikehaertl/php-shellcommand' => - array ( - 'pretty_version' => '1.6.3', - 'version' => '1.6.3.0', - 'aliases' => - array ( - ), - 'reference' => 'fe86ec847877b83bf61a96719e7f2e3b3e516a6b', - ), - 'mikemclin/laravel-wp-password' => - array ( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '84ff1113ff6866cdb0350c176dc3c843383e4819', - 'replaced' => - array ( - 0 => '2.0.1', - ), - ), - 'mustache/mustache' => - array ( - 'pretty_version' => 'v2.13.0', - 'version' => '2.13.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e95c5a008c23d3151d59ea72484d4f72049ab7f4', - ), - 'myclabs/deep-copy' => - array ( - 'pretty_version' => '1.10.2', - 'version' => '1.10.2.0', - 'aliases' => - array ( - ), - 'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220', - 'replaced' => - array ( - 0 => '1.10.2', - ), - ), - 'nesbot/carbon' => - array ( - 'pretty_version' => '2.43.0', - 'version' => '2.43.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd32c57d8389113742f4a88725a170236470012e2', - ), - 'nikic/php-parser' => - array ( - 'pretty_version' => 'v4.10.4', - 'version' => '4.10.4.0', - 'aliases' => - array ( - ), - 'reference' => 'c6d052fc58cb876152f89f532b95a8d7907e7f0e', - ), - 'phar-io/manifest' => - array ( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '85265efd3af7ba3ca4b2a2c34dbfc5788dd29133', - ), - 'phar-io/version' => - array ( - 'pretty_version' => '3.0.4', - 'version' => '3.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'e4782611070e50613683d2b9a57730e9a3ba5451', - ), - 'php-webdriver/webdriver' => - array ( - 'pretty_version' => '1.9.0', - 'version' => '1.9.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e3633154554605274cc9d59837f55a7427d72003', - ), - 'phpdocumentor/reflection-common' => - array ( - 'pretty_version' => '2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b', - ), - 'phpdocumentor/reflection-docblock' => - array ( - 'pretty_version' => '5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556', - ), - 'phpdocumentor/type-resolver' => - array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', - 'aliases' => - array ( - ), - 'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0', - ), - 'phpspec/prophecy' => - array ( - 'pretty_version' => '1.12.2', - 'version' => '1.12.2.0', - 'aliases' => - array ( - ), - 'reference' => '245710e971a030f42e08f4912863805570f23d39', - ), - 'phpunit/php-code-coverage' => - array ( - 'pretty_version' => '9.2.5', - 'version' => '9.2.5.0', - 'aliases' => - array ( - ), - 'reference' => 'f3e026641cc91909d421802dd3ac7827ebfd97e1', - ), - 'phpunit/php-file-iterator' => - array ( - 'pretty_version' => '3.0.5', - 'version' => '3.0.5.0', - 'aliases' => - array ( - ), - 'reference' => 'aa4be8575f26070b100fccb67faabb28f21f66f8', - ), - 'phpunit/php-invoker' => - array ( - 'pretty_version' => '3.1.1', - 'version' => '3.1.1.0', - 'aliases' => - array ( - ), - 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67', - ), - 'phpunit/php-text-template' => - array ( - 'pretty_version' => '2.0.4', - 'version' => '2.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28', - ), - 'phpunit/php-timer' => - array ( - 'pretty_version' => '5.0.3', - 'version' => '5.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2', - ), - 'phpunit/phpunit' => - array ( - 'pretty_version' => '9.5.1', - 'version' => '9.5.1.0', - 'aliases' => - array ( - ), - 'reference' => 'e7bdf4085de85a825f4424eae52c99a1cec2f360', - ), - 'psr/container' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', - ), - 'psr/event-dispatcher' => - array ( - 'pretty_version' => '1.0.0', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', - ), - 'psr/event-dispatcher-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/http-client' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', - ), - 'psr/http-client-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/http-message' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', - ), - 'psr/http-message-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/log-implementation' => - array ( - 'provided' => - array ( - 0 => '1.0', - ), - ), - 'psr/simple-cache' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', - ), - 'ralouphie/getallheaders' => - array ( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '120b605dfeb996808c31b6477290a714d356e822', - ), - 'rmccue/requests' => - array ( - 'pretty_version' => 'v1.7.0', - 'version' => '1.7.0.0', - 'aliases' => - array ( - ), - 'reference' => '87932f52ffad70504d93f04f15690cf16a089546', - ), - 'sebastian/cli-parser' => - array ( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'aliases' => - array ( - ), - 'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2', - ), - 'sebastian/code-unit' => - array ( - 'pretty_version' => '1.0.8', - 'version' => '1.0.8.0', - 'aliases' => - array ( - ), - 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120', - ), - 'sebastian/code-unit-reverse-lookup' => - array ( - 'pretty_version' => '2.0.3', - 'version' => '2.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5', - ), - 'sebastian/comparator' => - array ( - 'pretty_version' => '4.0.6', - 'version' => '4.0.6.0', - 'aliases' => - array ( - ), - 'reference' => '55f4261989e546dc112258c7a75935a81a7ce382', - ), - 'sebastian/complexity' => - array ( - 'pretty_version' => '2.0.2', - 'version' => '2.0.2.0', - 'aliases' => - array ( - ), - 'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88', - ), - 'sebastian/diff' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d', - ), - 'sebastian/environment' => - array ( - 'pretty_version' => '5.1.3', - 'version' => '5.1.3.0', - 'aliases' => - array ( - ), - 'reference' => '388b6ced16caa751030f6a69e588299fa09200ac', - ), - 'sebastian/exporter' => - array ( - 'pretty_version' => '4.0.3', - 'version' => '4.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'd89cc98761b8cb5a1a235a6b703ae50d34080e65', - ), - 'sebastian/global-state' => - array ( - 'pretty_version' => '5.0.2', - 'version' => '5.0.2.0', - 'aliases' => - array ( - ), - 'reference' => 'a90ccbddffa067b51f574dea6eb25d5680839455', - ), - 'sebastian/lines-of-code' => - array ( - 'pretty_version' => '1.0.3', - 'version' => '1.0.3.0', - 'aliases' => - array ( - ), - 'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc', - ), - 'sebastian/object-enumerator' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71', - ), - 'sebastian/object-reflector' => - array ( - 'pretty_version' => '2.0.4', - 'version' => '2.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7', - ), - 'sebastian/recursion-context' => - array ( - 'pretty_version' => '4.0.4', - 'version' => '4.0.4.0', - 'aliases' => - array ( - ), - 'reference' => 'cd9d8cf3c5804de4341c283ed787f099f5506172', - ), - 'sebastian/resource-operations' => - array ( - 'pretty_version' => '3.0.3', - 'version' => '3.0.3.0', - 'aliases' => - array ( - ), - 'reference' => '0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8', - ), - 'sebastian/type' => - array ( - 'pretty_version' => '2.3.1', - 'version' => '2.3.1.0', - 'aliases' => - array ( - ), - 'reference' => '81cd61ab7bbf2de744aba0ea61fae32f721df3d2', - ), - 'sebastian/version' => - array ( - 'pretty_version' => '3.0.2', - 'version' => '3.0.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c6c1022351a901512170118436c764e473f6de8c', - ), - 'symfony/browser-kit' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'b03b2057ed53ee4eab2e8f372084d7722b7b8ffd', - ), - 'symfony/console' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'd62ec79478b55036f65e2602e282822b8eaaff0a', - ), - 'symfony/css-selector' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'f65f217b3314504a1ec99c2d6ef69016bb13490f', - ), - 'symfony/deprecation-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '5fa56b4074d1ae755beb55617ddafe6f5d78f665', - ), - 'symfony/dom-crawler' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '5d89ceb53ec65e1973a555072fac8ed5ecad3384', - ), - 'symfony/event-dispatcher' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '4f9760f8074978ad82e2ce854dff79a71fe45367', - ), - 'symfony/event-dispatcher-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '0ba7d54483095a198fa51781bc608d17e84dffa2', - ), - 'symfony/event-dispatcher-implementation' => - array ( - 'provided' => - array ( - 0 => '2.0', - ), - ), - 'symfony/finder' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '196f45723b5e618bf0e23b97e96d11652696ea9e', - ), - 'symfony/polyfill-ctype' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e', - ), - 'symfony/polyfill-intl-grapheme' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => '267a9adeb8ecb8071040a740930e077cdfb987af', - ), - 'symfony/polyfill-intl-normalizer' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => '6e971c891537eb617a00bb07a43d182a6915faba', - ), - 'symfony/polyfill-mbstring' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13', - ), - 'symfony/polyfill-php73' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'a678b42e92f86eca04b7fa4c0f6f19d097fb69e2', - ), - 'symfony/polyfill-php80' => - array ( - 'pretty_version' => 'v1.22.0', - 'version' => '1.22.0.0', - 'aliases' => - array ( - ), - 'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91', - ), - 'symfony/process' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '313a38f09c77fbcdc1d223e57d368cea76a2fd2f', - ), - 'symfony/service-contracts' => - array ( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'aliases' => - array ( - ), - 'reference' => 'd15da7ba4957ffb8f1747218be9e1a121fd298a1', - ), - 'symfony/string' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c95468897f408dd0aca2ff582074423dd0455122', - ), - 'symfony/translation' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => 'c021864d4354ee55160ddcfd31dc477a1bc77949', - ), - 'symfony/translation-contracts' => - array ( - 'pretty_version' => 'v2.3.0', - 'version' => '2.3.0.0', - 'aliases' => - array ( - ), - 'reference' => 'e2eaa60b558f26a4b0354e1bbb25636efaaad105', - ), - 'symfony/translation-implementation' => - array ( - 'provided' => - array ( - 0 => '2.0', - ), - ), - 'symfony/yaml' => - array ( - 'pretty_version' => 'v5.2.2', - 'version' => '5.2.2.0', - 'aliases' => - array ( - ), - 'reference' => '6bb8b36c6dea8100268512bf46e858c8eb5c545e', - ), - 'theseer/tokenizer' => - array ( - 'pretty_version' => '1.2.0', - 'version' => '1.2.0.0', - 'aliases' => - array ( - ), - 'reference' => '75a63c33a8577608444246075ea0af0d052e452a', - ), - 'voku/portable-ascii' => - array ( - 'pretty_version' => '1.5.6', - 'version' => '1.5.6.0', - 'aliases' => - array ( - ), - 'reference' => '80953678b19901e5165c56752d087fc11526017c', - ), - 'vria/nodiacritic' => - array ( - 'pretty_version' => '0.1.2', - 'version' => '0.1.2.0', - 'aliases' => - array ( - ), - 'reference' => '3efeb60fb2586fe3ce8ff0f3c122d380717b8b07', - ), - 'webmozart/assert' => - array ( - 'pretty_version' => '1.9.1', - 'version' => '1.9.1.0', - 'aliases' => - array ( - ), - 'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389', - ), - 'wp-cli/mustangostang-spyc' => - array ( - 'pretty_version' => '0.6.3', - 'version' => '0.6.3.0', - 'aliases' => - array ( - ), - 'reference' => '6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7', - ), - 'wp-cli/php-cli-tools' => - array ( - 'pretty_version' => 'v0.11.11', - 'version' => '0.11.11.0', - 'aliases' => - array ( - ), - 'reference' => 'fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f', - ), - 'wp-cli/wp-cli' => - array ( - 'pretty_version' => 'v2.4.1', - 'version' => '2.4.1.0', - 'aliases' => - array ( - ), - 'reference' => 'ceb18598e79befa9b2a37a51efbb34910628988b', - ), - 'zordius/lightncandy' => - array ( - 'pretty_version' => 'v1.2.5', - 'version' => '1.2.5.0', - 'aliases' => - array ( - ), - 'reference' => '37aa381e0f27d411a630062070c7a5a2174c62e7', - ), - ), -); diff --git a/woocommerce-jadlog/woocommerce-jadlog.php b/woocommerce-jadlog/woocommerce-jadlog.php index a40a7934..cc108f0b 100755 --- a/woocommerce-jadlog/woocommerce-jadlog.php +++ b/woocommerce-jadlog/woocommerce-jadlog.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce Jadlog * Plugin URI: https://github.com/Jadlog/woocommerce * Description: Jadlog Shipping Module for WooCommerce 3 & 4 - * Version: 0.3.0 + * Version: 0.4.0 * Author: Jadlog Logística * Author URI: https://www.jadlog.com.br/ * Text Domain: woocommerce-jadlog

-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 r>y1?bq3l*Qqa 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 Nd%F6$taD0e0syG#3^M=# literal 0 HcmV?d00001 diff --git a/doc/img/entregahabilitada.png b/doc/img/entregahabilitada.png new file mode 100644 index 0000000000000000000000000000000000000000..bcade98ddc0f54bedd6064c28c7a1d543b13f0fb GIT binary patch literal 62755 zcmc%x2UJt(8U_k8<55Qu(6N9N(NRIA1_+TF6$Kk0(rbj!dq+x$ioz&?C`b!U2u-T= z9uzd8w*UbGL=1!)A|xabAlx{Pb7s!}uY1qA>#lpV7UCL zyKTFddwjtArnw&v4}aUYpPz7E1@=5VjJjLbuNpnHS>9QyJwBXHL(&DpGIy|_J5HX3 zrm5e|$KBLp-NNA){9;uWl(AMyfL9+6i%<_AdhUGv#@T&metvQA;Z^z57v{CEUTOPu zXSCqL%ijf!?g4K0pVoeL({8X{a%Xec$)v}^uNP&!R6!VbqgF$_ux`u7Kw46v@w%f) z2_SQOM)HQr=1lyoVJ7=^ns4XDfPsg~r8|eHxy6}Op;4GIv3#dosocAf#K%jn%bcvU zMVW%b7w&x z)GW5**H&0V#Z)lPl-I2UF8kG$8MKB?^sPVygCJv0L79`Z@ERi1Z#XcyH}?{bOXgVaC6BS19jh8KtN_b+z*(KA;K(V^O3jYwO7xLP<4@GRt+dw_eSvCB zkhXO3rEsaLC1Gv)+s>jCU-t=l-8%4zQ|L>@MlF6FUuO`q^4foW;la>jz&FkL{z3C241WBdM=0O{;^!Yn?+ei9p$zy= zrhfZgLAa@Box|IS8sF-PaDs3|_y|lm&&ST?uR(blbPcid`@!2spdqr&JF@jYs|qO! z>-RT@=Jfj7)+<-=?;L^-wckjB_2u}`f82tH=K{IVjZ*u}Y)Y0-1l{nne{VIfLx+dd z?6Ozbo!*Vbe;K|n=`x*_(uTkLqIXoMO(_;TOr5sUU_bLA&-&%VRfNB3{P$0DOh_ya zDGu6ROKN#tOA5CPq)o|WvWN0#q9NPa?voA1Q!tjbO5k$x=GIKSe&^b3*K8}V-0R~~ zCheuxjpI&;!t&sr?bL4QS|*rWq!2pwWa5wvd2z|>HNIsV7_W`zk5WV z+2*gwJ^^ZHhAdvJr=Z+s3X4kPI^rd}Zb_!wcMtgWX_z|pWymB!!t32h7;BRfi}R*d zKF=n++xQe4 zTA;120qiNHoKm1URYpntqRABayq2rDJK2pN4Kq2h^WYgk7wXdZ$$ZzRG-aurotT9y zJC#(v9kLhbMQx1svhYpaCSJ_fCjYt5SK!%sd8Nmind5G=T@X%1TFByC1<#4gDM~JJ zchfEpEN@NBX-ej2hBtJhfOjzTbXt4%jp&&V`^8_2cr_X1>7|dKf-;8W!f$wD0_wy3 zI*sbR$Nf`kKReb3PX9*FFt9#e7@0r&h1M&-FRt`1UT56n6v~9&-!#!gde$- zBfiNDAmw<$abf&RL$`WczS?ar=nEvbbY^Llbp-Hw{*D#%VA#RuI~~)dN*@={Eqz#T z4~*TBlC|DbZlL{S;P)TO-;4+mUi2uyO|P^-hpn*!s&uz>*o)wt4ZU&kKFvl+VG{u$ za2>F@m-j@wAm-~{m8IfJ`-Q>W3J;=k@XRY6`_(U>e3@fTB7R0O1LyA~wzDuS4QT9Q z=Ri$~kZ~oQEh5;p%YkPqAy+asyz-O9AKc$#)T6iKPF@s{d;8N{B(v~j;TDG^35Fsh zd$i~kKE!8kFF3gRxegWvUVRn3qzN?h-|HrYok!O23)|Tm``bOi^2_$n+h3ivnWA3O zCwh=(AGic4G&072Dnhoymp{VePnudoDbF#?X~j(NS%KXdCrvNTp7+AhsTOO(6@qjmf1pV6(#NU$|*NxKN9HI?h#NwE!VPLap=$?Av~jr-W%UY!&t7=k@@M)&EX?KvHW8~#%GO8qilRP z6BJ++Q5EVPr%s*SSu%E}N;_Kk2D`2aYf8qiK5H|34Ma$ON z${FdFA<|EM?3_hFp5t*|ZoAbX*M1*xfg0)dn^(>W`x({twS4_G1>jc0wJVMK!?o#E zc%k9?JU?ail%>l*T;-MDr=+lmdxQ%^9?c~GomWc~Qhya>@S9}T=sp9JEby()&qqR<~8g-K10P~_a}=r!a!xu%U72_ zIChP4HjW01DV4fW=4(E!;Ohb#ZOnxUk#nnidtDyymKMHo zVM4WjeYg+I>4=x`9A%XpMy0b~{9Y*jiyH$gHrQ*?zDL{cysprp?UAyuhAAd?`pF$ zY}zKb?y@o}QbM(KooFh+n7r!EI#%|J(A}|%q>enojw_>q)uLRIm^(|{ZmX(s-zi$H z3R@DWXHDCRM;5%@%$0+6B%|4S2Cy(2(--5c7lpS9!3~V+GMKKO=B9o9=O?@~^>Z1D zkp|KdukGYsD~Sgdo$F-W^zh?Hs6^z8)ZH z(OjVvTY~nCI(na6?;^AE{7M^jPF`9XLbvv#snQ8G<(Ha08`lH2jB2A^V2%<{TPMHg5{)^0r~%S8xnb;V=^i?MH9y9{`b^=dhxNrmDeYnT05ab*y_&0Y zFM1_+igrAaVmH7`Vfa2{+_lS+0Yr+S7w3Ddf8U}dhQ@DV&L^(|{WA`)|Ll|4uIO$O5W4GjI3 zMoQLtyuuAJYYAn^K`$1`^oILJx&uy`FcXtftBa8BFM_k%^ga-Ffg2EBiPVSzw2yP0 zzAdUAcu6*JO3c+XzHlr{O1lNVzAj;{7Gtmj^t6Uq^c|}<^E1LbkDFxx3iowHK8wFS z08>55C=)rQ_TIk*#;~UQNk0EFa+N&3r%%r)=u7>qNdl0*<+rA!e0N}bS+mwkFcrrK zlDSl6*)=FX=|rxdm8t@cpbv(TU1-@>{IchBpYWRmAETUJ2s4)3&<@%WkYt^1l`ez zdcWD+B%3(Fcy&l96-akudH}TBbQXqR_p_e4CUeFcOWzp!xqO+S`?U>~N*JGAC~|^p zoses6%kf~L84aq{Tm{bd0qRQs;T}#r5lPIi+nRVzUa8HT zyk%xQ(wchWhU5cjeUMf8X2W`58}KgqW2dPSM)>JCTo|`PP<0FU+`Uwzfif-D)Viwc z3%ni>KL6o95WIZJA*RU1zZduAQ-1@FZCCKlPAMb*d>UGnL_ILki?4_;SKIZlih=5X zv7I_0LYUnDU5sbhRhTLYi5 zx^3(1Xc16{#;u8_W1(;=Hpn1T8=hbTci|uudtc)9)Ow2fhyTz_wz=+rp}xj&Q-qPO zVN7En)ncsD3E8whVyOkvrlMC}BV8R`Z;!I13ISRBK0QhG0=C>OlhX1~-8t?R<7J9m ztf36_ibDny@*92~MxAGmS;tt&H68K)x;)e0vcf}rPS(33LeV=0vXXqNrycZpvg2@K zR$ah7MrCQuA;~RjfBei=B#xUB`dN^SWrt$KI^3|TZn0+*aQlo z$w32ryMo%<8b<3-Nh_7CkIHw;1N!^e1mHs%VaAiQ*{25eVT*yI(GAs%n4We6{~ z>^TUu zA|Lc-y%Od=-lGFv3J>}^83v4XJF!R_Z9L^~R~O$ig5!8SSt&A2aVE|kmK0J(DDe)Qa zM#{QuO>kU67GMpI`_58U*};B-<;S%bN4AVZ2p6cw(v`HS>LbvbI33nPQ=#e!cg?H? zbKtIr=%0pfKCh9zWPBkD{>`aw_e;5a)eFmVLvG(CtsGY1-zgLjb2R9;v7f3VvLl?^CY5e0w(wIDv*!O* zVT;mPCVWtWCF@CAICl<7-Kq6R#^N{1<)hOlWGzbh%1kjD_a->+W=ESQw_A5?cZiQs z(bG~VmyuHDe!bbdKYbOD+@?8e0_Q~H2Vu{a0Akn)vh8b>2A5k5Jw zc9_JqZpA*K2qU<&3kd^rJpQ)yn6aTz+y4FgXVd(8UwMU*MX1~u1vDLcv(ah3Yddwc zkS3t9SqYK1CDqTYP5eG^Jez5-N$aia{Af%!+T|a9b70{$VBGB^|8LH6s!nnZ%b^L# z+&)xjdN4yX5o7Aj_bD(rdotVlM}2;!_MVo3h8W@c@{LGhkZV;_GC+8Zy;RoK%$jmL zl}Sj*c73sUmepX#NVN2H$po+m;G1>b8MW`5GQTq9;624@cpQ27-hIU(l#Z+B;%x)i zgc*F&lI)6dqmW*MGbUuUBLIa*&)0!W8%v8`|5Ka1~V)kk% zpWB64dqblSLf`Nq9-c?9VoNi&SM@Uxk?RNBsA?{mqpWmntFeeha}>xBcfGJ!NOk*#kY+z<=$RGfxkH|J5dgFql{U_wg@$wes3oOQ(PQ{g*RJ z6RkqeN+bTfo_l4#H}C%^g9KRWz`yPZUhh`qW1n1a`R6nP3|*gc81zimdr>Of7IBSm z^{+K8=J_W$J0lh~he-ceN!Gwy(k_Qp;W~V&o-ugGVZ6#k#-|5JX#bWP&W@twwNnXq zj)fT zln(teY@B^C&)Mo*`P!YLh-1{39)`_lMcLD)n%7nuX`QKF7#A#=lIqplV_#bO!)#5`P~jtxOfM6*+d9fbyp0Cr>ktxyGeI+`O;E=mkrqd!SwQ>y8uZ)j zTzIbirNBz6&j6|lIeB@^N>o};Aq_DA-x->l;R0>lJ^e(J(nPPYrJq%t25TM0#P)24 z$Dn_H4nqgerWS2SwPXwOAr9j1TW8A*Ovs@Su~Z%xRiJ*K%1+}K-gsW*;P}U;M`k&)M|ob zXviJiljxPu8_aI2%WTWR-?4`C9YiKg$I+Y1I;~SO-e+EA^z_hE9@%o+bn%?-@2EH2eoDDpansP%{12F&8LZQtna<#TIP+f}yyz zwN*8E^qBs!Va6Vam3kW@0CGyr8+msJzWX|iBd9{&ide%!;@{UQw|{)oYzjWR)*I<1 znb{)KRa^YJQZsS6?=C(l!%Bk0>267WxVw?^wjwOE^3wXKr}=h?emhCh7QVYXScMAW z+}vHAbJ)yv>HzQdRi(kVJFS8@ZVLZpi0j#ruI_dS{<6T8iIi0I3k=u@cLg47GtkFO z&wha&R%$Mcj4=SJdzpuXE}Ug>lV>%gQ;Y%YRj6)}tu4l(;IWIT&!v%W>1a3Ip=7`! zD%CZlaPzH1fe0beP4ggj{_DWjix#L6pPsQRf)k&n3XN!Dj2s!OWDv1UY3zQl>m0UD zFm2-iA(Y>n=#`T89|%KF0}umqrkz2waGR-{oe!Nz8VUw{gNdf~ zzx`NtIw4j}&G)Fs1!>EgyBuzs>r|huciR*`j$171$IXRuD_&zfwt(~IzBA%m4zpdh zOMkAO;f5F&w{`s_6kv*IFvAZ5^(+C}z?jsi8(ml-G0hOjY7pX-QJaE+D?%?JW~^pA zAn5CS*s1}0NJ!(x30hy^IS2P`lV9gr_n+HsZYCY-96C4oF$NbW?U~rJ+X#ugoG&`!<7mPt(;_W2v^oSI16#`6js!w<>;Z8?zF>er}>*p9c9SK+#Uvz;@? z@Gs$E9l~g~8^e`riIaj@kwv7O`2_3HxCcz%SqfXAE20PnXh$KZ2;M^Iu@?h(#O0B# zOJ`Xs4L2Dbo42;%o#G_WcP=?bSFW#0yhY;ZDfKCIa#J`K5jQnFYP6^FICRK!Np6_9 zy<9c|{liynpc&wB&hG_IW4{9$-Z#{fr;2t1UVf|T}nW0kCRffxwYYEz0@nEVYmy}3x7@Xo)On? ziEn?^`Bn=ZL-d7MDeg*a&bNfAqa?4;q&Va|fqPwGP@|ccD96sXu11_b{q`^RLES>f zH_@UK@}|A-kRRa7^fl^IX1nQI&g%PpDVxW4KC$6(aL$Or<|=&*&0zBnUiVUeoihxn zBS1ds4|+676bt?}gTocBokDx(|5X6oSsh5ZwYw89U9eg9LzNC+E4cbce2ziK(-PtRJ%zLT5fhDlh!)dfPv*2d$Bx9i6qO7lgIqH07LNaIP_@N(=p! zV*Ua=|BoDV(VCBo!>eY2x2FXv>^>db-0XvAP*0k(*UR8C(SmZy@PYQD|40n@ko)%U z|CXPrG)(I9)dC7<-@d93qD{H?^$*?QMms{Fl~Z@}E7sc;@lu}=g=%+8r1qfz-O2|a zo|H1q{9~v9laa$ljLP9e8OsLOMO#FT&UB#-wQtXU{^Y(k2ZU=1H|VTmeQ~j3Q(@8E zEJhpn*NPX5hlGkOn)CBsqbve*Gu?8`p)yLCAuDd3U$ixm@WdF4rZ|v2rkd&>AY6l$ zn>zdb=sv`}Odtd(4eTBPxT7P*HA04xeT5+`mkeWAmhVzNHj`Th22{-QM^)+BW?CM- zY$9Hpv9frdPhd-H78|rRo29P(ryz(+8|^=M)x(L~Ygu4E1?t zG*~C*j~FbuwiydMwzXlrm+}YuYD!SG!hxRY6LsmYM{2uI52=n~3|y>&!jxjH%gsl` z9bnW>rblrPsw~lVX^ygxST@)q>{x4z$`?Djvs?po*H`>!s@;35C*SdusQ|fAJDJaL zkG$ifw|3aXPGP5!&-d#cT*3(IhA#D42L!uxz(jW4y0J?#aJsdsT)}#{2x4w&?3o^^ zWg!PVq!png+VYNOB&@@F=21)_09=wwXZ*>|n=3U$FAI}OY=Iia!Nc{s5V}9$M<_ot zqyn@P9lOkYMe+XR;H(rW#b8vfR4zcJHmVT)Zvt4)g3YY7bdQe=XKyJ<7ne~=9GsJN z-L|fE9qQ?ohZ6;bO<9f9gDe+}XL@UcKvY$!g%eS`7F^{qEmWXnbztl4GH*1OU%up0 zube>5a+y42pMCu*iK!` zL|G%VmU~$~d8_xiDd`dCM#O&F73GMYH(9KV9f2>E_M^%w~HSqC%PvAI{+)^ z6f7=Xs&}al3%YAn4=WgKnO1+dUYR-B6nS6gpGH?aWIs5ZJR)5=2+4($V?gSPcXwT_ z8mYntY|~onJ-R+IGQf9sQrgC-DWE`rnpL{+2p~^h+|(0hj0!?yo$E^Ae<(+$houL} z?3s_+d5`!lPs0Su8cx8L7Pyg&_NXKa)NrS1uI}S#fQ7 z7hCEg+}We!6QfvyOvtOn7IfAaca^u?rX?B-3)=2XKyn4zs!nx!x0h7P5N|J)?g*it zE0;Dxb|ZJPE-ks4u479JW0m1*o}N~GhVCis;2rjQ-jwjlNQ?PDN*k^(Jn|N>C`{7& z=MJ8ED$G5>IR2MMxb_S1H?EYW{!+E4hlM@=V<_jkXMls&`~U3?v!+k{!y}z}8fp0t zef@uQkbzsj{E0jCm#NdYqf?GYStKxRi@l-_a%Yh+n)9ze|2!`!uN@`JUCkZ4_+S4# z_XhG_NUVYDWaOUf-v0C4qwt@g{`1^D#GF&U_@n=Vy%#Z%<;FETC(agOc2LT(W0wui z{5^8d(~lD8|NP>WmPY_p|Mez7$Ot@5s#X?qzLr$2jo}h4$>{#W<+l#}d0oF8w}P|(E>|Njj1E$qMI7HqvS1`gcD4S-Ho+<&a6^hm9p{{_l?W#7sx zG7dQ>s^WW{OWA*Mwh|iq`+)LR*!ii)w2m8l|I;myq<&i}N zuMa(1764%sN|>VQDvli<&h<>rQww1@V`%wcjR)N$-n-nIvy=XK`pn-p@mZiSdgMLg zWJ*Ka&4tDf!XZO@cm5Pjh1$+3o^St;`KVG&tsm*Er^d2Z|TfY8L>3lU2g-4uQnk zRVzQ^HYNR3y|%K{KG(r%iN8;Vc@j-)e`9^owY#g)!AtnTP#u6BH{p{~`9(?bn#Xu; z?W8p?-v6qK0~_`$>tLTydi>C|fcbp?kfM~fK4)3bo(nK$M-~h&FZK($dX5{XtsLy@ z@2)C1Qt0Atu{D<4Efm0KCKUd6ZFf!u6iPU7JPm-iVDw4@sF7)EBzVw>bDb+g&4MyP!T;uP^+HN<9I*T@qYK95D-EeHygz zGa_TVjpo(=uHRK%T$o$`tk-d8KdiI!6ZY27p#alxWmkkm1#$=yP}a1a?+y_e;x;sK z`%H8aCjs~5wg2jc!7FK{04!?kjJSnk9>un2K*4Z0djX&mmH7{?fg&Oub90$Dx9^!C zMh5pG$3WF~O2f3w7Kn1wc9MIM#^Oon5b%ZEp#b!%BY&YivD1Yql`XF=)suTuthQBSs&OgKFrRvNF7|(;#zP6x!cr5;5IlaQ@ zY8{Fja)6cD;EKplTp)g{Lo|i={l|bA$I&|_+&l85|Ms_~ee<4NAd&r_?(6@@9gosm z@2nA8c4R6y?o|$A@S2Eq>b(zKc=p%7t*uobqH&HU8Vai1{6D!!jV7vyd{XoQ*ExXA zh2_HXif&X3Kw)Y|Tz6meH{S@(!e*3)7{%-B-Y-Bh6U;q`XTG8I|F|Vj`aUi~cl+NC zkjGz`8%ZwxTj_cFUH&;P&z1cDmj*%Q#SFYnvNW^Qv$RF85zeWpOEay~kk66FQygGkE{LSP?O2+vUaHXS5XYWXBR%M!z zEbUga0_=vJ&L{tX5`X^XId`mqGQoRRmjh$9*~&HWskK~9LEl7Yk_QA%RGV;)p zAP{0?s9nA~ zXWEab?6yXur-O=M3>V-ZR&qMVM*W3rhCrfgB)z_z1h(HMq@`>u18ii+=p;x|P3{UTAAMNPzquU8?sw*)yJo_=**5wxkbV#{G2 zRy}qeo)(&sgkA9(k~hY$aWQEmDs6;^FUCNZ?AiE~o0#$cZ;Rq$Il^yTpElUKh8K3c zH9KoWeqADKEUz7!G@7$~Y$xQWPtTxp&N*JtEgiM)j#qo2dnY4RMlUmrS+<8F1=y;3 z&EY@sJfgUa3k~Ba>#M;cr$S$2#IW;BT&6rXUp{EmHZsxJ%ZqO*eZE+F$vAvFUQ&Y_ zQnFn&%j=AhU$wUWw;fG{hyCF?hqhMFr((>ZMm=5qUyY!Ke7z?t9h10`d){BXjj$bi zN<$c^9YDhBT6WKwSbJT;2%W|WU+Km>QD?ZbsD#8oIQO*FrpYP0jv#YhX{L1{WVVF?FbOa{WunfY( z^Cmdb9udCjHrL)$E88cI4(jPEd>6t+sD)8mHemxoNe$Kxh{YP94!6;RO}_1b9CWh~ z(eE*o+0PBJ-`vK);NBsTPzUeLyD6$ZO$ZT?tZmcX4T@2{%hHF3+gTM}C3o+1rUdp) zJ$(2y5OR5?*~wyLwFO0nv(;fU`5oiQ6)>wO{No6%Vp+fCM(Cc#6REk0{`_Zx|Yjeog zyHUE{xlsC{GhBVUr@11~LO}vQ(mCb)P)yZ(%9AGAJwBJN7|9Byd`91~U%bIPleM$J zWQtVtgF2X}ZKV8j$}G}(o7=POIdH!wM2mBZJNRqfvW2?g$V&7_k)Nqz5yGJ>C_BpH zhDfbWTPTX(x-TH7EXvGu_hE0Teq?a>pS#qBoqxU?_(Ix>5izmh-=ojROS&_T031X| zeKT8K$d&V;WYBrRQ8HHlr3){iGp{5W=UWbf#76 zy*^MBLb~ZeOY8Pj$J7pX<39B4Q6P#YDLNQBsxt(dRdCRS+vRgTGh5+{Kq-fa*fE%t z!-oVZqTQj3`)lQ1Es)$>rU!y;lBm%VoprZ5bl0=Y9*XqS7dKWFs8bd6#R~xKmg>{# zp(lxuhZ?`uDlRt%p%CI=naoU>1LD-E?43OQ#FSimQI~p1{9WtxA&FQ&Mln$+QRj~gH{xreYv5fV@OE0)R$o-jB?g*~mb9Cz7E&E!>Qom}ol8OFJxM^{#rW6#&$B0|kUA?)C#ao{?1U*qa^>x~Vid zGTp-C@y$b$?YZ$LvFkBc8<=uQc5Mdn8P$*Y*= z%=J9hDF4d5r>=9AjQAB=6=iajnE)6+v&a41z!ac;wEVgRBK2Y_Q{x;xj+4%M|Mldi zN0t^n`z%c3V}l*{83Bf*hc!1TZ2+IB`Ao5#-Q_IhX9s_nKmW}_4F&Io?z6w`Tduf+ zslXi(vk`uM9xsV9P9XQ9F5r`BaS`TbAwN}L*%yAPz`ni zTPH>$!IHYPn(Bx2c`I+noiCcg!FaSwQ^@Q}y;sIv6&=%exn+CJHtl7KPkoDf@HAJb z|JQ@Cs_@9-(2!SmH@3<<=2#saBy-77U>NZbZFLI()r+6qBE|2K(o@Ww6X;IDb3!Y2 zUtEnROh?VNKSg5tKEg;klI`2+y@f+s5ejn%f%egJ?#m?P9lS(l$#e*#K0tw7d~^nu zmsY;^Sdr2d3mIA*`-Pew|4IZYxX<3Tf@=%LIK$Qtl7!Bti(?yZqlownb7$)K#rl<$SFTUDG>pGi_eSCZc-p`e)9&}IHIwg$BX}d@a`tWEu*bg2@>)xK2Wj?+N zF?~0Bl67&c=wK`DC5S1xTERXK)9~2bXHH464d{I9H)X=~viuESNsvHfUY-P>5`NP> z7kwrfRZq0(D}WZROh#ms%|(o^efZu<<%=_XBR=Zk4?Tx#Nk1UK)+Z4a|vjLYvVN4i*n zWFB#gh4kzc-U5Pna*|d5-Gs*#sdmwt%BmOZ>+0Qem&b$dG2JsHkH+(6rGW498HXMP zuVSyNIFl~c!g9MYZjH+--uIX*78mi1FCA0KPeIju{VTk9HUB8t8?&l_%kXg(Oxl#mrpOT*&u{ckFtP4z;Hlrq1N?;(0xZ zCN#>xXDe^aYJ;fyyN==8qF9{`(RwcdP|1!4En$onB~0n!96H{9pr+aP z^8(kN@UE>Rh=DzO6zzN2`EgZI4m9?ixTd&m#kOh#Zdi>FK@wPCP%njWyP7b+#*5WuT2_kFx z74=SjN@~jU_`J@ht-!7fYgccH&68)PI%qM?70e2I8-0{yDsyNN3ekGi>jN|;NX$iB zgkwK@_{55DPj{c|JJ6xKlyR=-)JdzV)8IgntP*I#Ny!>7=#YjZ^&v7-x{`J)mZ(8= zNMXJ$&AY#6;hrzL!PT`w16cnUd||&po>WmMZb10uLbB+D;ssDot;6R0L+-;(1{4oH zwl7K6+y(3Ve7R!IGiljMV>-=V_T2hJrBhNdknVeJFucTYB=%fOYR$0ci%I&#l0eU$ z&eYR)0v&=S$Y8}=@tmlMKy#I#((mkx#=)TH*Sp9_5l{=kNwU){xffLTh~p}5o2{aOlgZ=-gQ8~(BOB(IJ@_R4_!Atg+G>8)N7 zHUGv%bpt2$_@-_*@g`04-`tjFi64Wr=GYbodS4m)l}vA@e(Iwgh;xhOYfQtGmyI~T zp$TVwuL=)!2<;W(megYxQT2~*%iXnxD%Fj3dY)rS3MQ=Vbq_z9VYN-wufdD_HupsN ziPJAk1OQd72;FAwTiadGZ%a?z1hFJR3%AtW_#Kv8yh48UswfVV7}N8#XMFLU(&{DK zj*sF#4$dX<|67`D(rW-HJX`9G5{h zgfiL`obq-3uI%f*JD3JM9aVXmCT1fUALmbIOy&@s+D8G<**KZrgM)J?I-Xy}04+kd zTblh8M1qoLw7nkJACbid%^8G*jdUM6zoU;-Kz{@sT&wr=Ja&|^&!nqG+jKE!t43}x z73DsK3SRlBKN_&~Gza7I&;m3Uwu*ft-M<|vkF!SK(0!pqvX}^|3MgI_M)QeQ)(Bu~ zKcs2trg?BKk@_EA`VxzFLpaW5I`5vFl>n_U!H*76wgEPt<15&%ch~|EaH=?2aACuN z`qd<4?_7QN;gqn@hE`>z>*^Djo?f>~kXq48>8YTb<9YrLDKYVwu6K@+d+TP0G`yV1 z3$ezID|(Hf@Gz`1ZSyygt?H>r6lr-b}@ahJJE; zT}YM)Y$9TMVjstmKT7(l!`;kx#O3LW* zuVosy#>fK&FmXwN9U1O762(_gzb?cW^mKQ4%jV#tKfQ1NW!z#}YWIm^gLVGI7wA2a zHRIBl{%_C%&Slwv{UMC>rrWt)NLRdwHF&+>f4@o09nHqoqpe{A?uj>&^y2WEKG|t+ zkaKQq8+q+YamYAlXbP3}#z<5@!^LHlqSK1GN{?_gjAt-cO+vS|=Ncl_{A6R|6JLe* zu6=D^#6MTDd1w?8>JbpKhr9U|B28VdYxOW%VC7CJp zYJ*chUJ{xkc3@gm9@!u6=HN?C7uKwQzNziI(%_ZSotn|T1Vbvy6y2?<@F^t~LLtSAfogk>Z?E<~`yKT;^&NEM zdWeQco#H{aWWAe$e%l27x^ScS?%3DXt8_DSJx7TXo~2V0XZHv?v(GP_y?v|cDoAg? z>`PR$Hv+|F^H5xSREy$ieX*N^+jd^G zVj(_Hz59j8{N|$dS8j0G9QxTtl`fNI-8#pJ<*B3`a1~As6YbY*mZYQ?xQ!Y8*XD>F|T7AGXNG&qVzDP6Y{Ax zd|l-tr~~??gcwnNM_iCemaw05Z5+qHEIEXFV3U5>Mdz9=e=_~^v6G{vQZjBuF?gI) zen*_n`m3cJeqx&D?ELt*5?z~bsba!`iNr>d&eJ~(hAsGeq)_Q z;-RKT3}Xv0FFusypCq=kJZ;k|E|;W%Uf^KY^hL`&z&2R zqz#qp{2Ocx9I3uBF+5e#7tiB^_au) z;pS|;`&+V#B9gulCP=RRpXhnRo~~xeJJ90CQ8jMc38{lRbrsS2FxHoG>rnf?(rN`- z>w&3H57@tFQ2@?U&uTw3iA&##hYS%hmcJ1*gR@=PSbIY{nY>>aEt`I8;!IFjPqnY8}UXqz-(EfmQ{@45;D^nZJD5;1)5T4MV%P zlfx5*zmDRxrh>m#eoBqa3FS{wC%|#e;WquOT2;c~K&z$9P+@dB^d;)q<5zk1 zbeSFfM0-o*4JyvXuvv#Jg(U66D#G^r3`#~=zn z+y&=xA!9~4b)lCV#^nw7 z1?FOPV9=^fm2mGR-A%duNU+ljdeMB$z*KqX=p5&gm&M%MO68fNsKUPE>s}O+dflBw z>(|wrw}A%=v8!(mO_{CoevqXAoaO}E;yG!-gwnb!$G+h%P>MKZV3jG3NA?j%gRX_p z#kTW%cvCCr4so>CGinaaTb}Qq?jbtl(z|d+^UHL%K->H(b(SOJ5DWdqT6@d2bPDQQ z!5uoK$F5~Y&)mYOW_0*CuX(;?_I~JI#y8ZBGO@ph(M*KVx*4E}rjVtF9v_5&9)02O zmx@y=rgQBf!#-q;>J|8yx(iK$id=5);)d1+IIuUPry7z;So0i5i3Ww(v_n!}r3HcH zq!4b+ORu$^NkaBg%V&!q^zx3~%8wjLod-Flr&{TViN8D0{hN?Fm4++*=vC&kiKa(QiMi)U3=*l6D_3^E6yQ`v<2V}$s zCInh5jb~Lkf$yD+!OMr*<69RLHdDDcYN0s6RS~8F5#aiRdP9fS8++E_L)>T8x-k5g z>w;?lx6t4<(`(<^h(AfS^lWk2H+G0fUYzG2^bSjQzy0SIDhltY7gf9;mMseIxw=ARnfrBMn=olBJ*#Dg~4194UwA>3B)K*B7H}SwnDPCIqrnWc`HT zw;&as4K^|RlhyelN4s-2#md)qtuHhA|F799ZX1uWU3`ThV`=X(!Ps>4D@+VkoGLG= z!;d)bFT&mBe$&Y)fRN_=(&g_!&0iw;uPK$kBKm*J1pcL)|25n9SC#NzQyt%_-T#4V z5%}JF^gpm{KlbClrw(OKq9H;cn{e)%Tk3a8feFr{F(O@iu5i<#tT%$ZJZ+!c%9>B4 zN1?^2NoMdr8=0zZFLV3~zRUPW!xPUVy+0-LquYr`RksaW0Mts@z07Kg6-IO4)}g~? zKQsLPsC0IzC9Pwac39XYWug|3GS%)%0J$$K_PNqXrU88`qq$BYis{E zCZ8wWk=s($pz2SGmZL~%1cZL;nVFXN{dWfjcN9f#2b%T8kokT$tk7^@L&%UOx7frN z8Mu-cFWm>Zf9v5u5*s&1bymNgQvgo5NgmBe!&pHxN+7nS_2F@k%`kLtI* z`0fEummF}>z28^@pVV0?2{v~?G^_$M+^RHdc2?E9dx&`fOFolfQJdjt{<}wlN44j71#PHfUW{8?tH1En3vPE)j;DnP=}Y2IJ^x(5 z^^@oGuo;m4~( z(09O2h^a?PRo5%{oH*{g#QZI>`DR%jm|zvDSu?Nu9G-0eRqe0Zl5esKT_N&~vLgj4 z2-AbD0}Ew8K$^pUYOs9z+Tb+OI-4iVJbSVolpV~x_4PO0^Y6l5wOg4U^6=IYq{9MLv==w%kfEKpGPk27(tHdCor3-55vDe?USGdnA8XvX z+T8qns$^C}Bs(D^Avnl>@K-wwe zs@T_4G3AaZ1iuRLO~ntr_Z&Z5t!y)F7zc{G$XGG>Suw z)rR7~U$ymj_Y43lKq_+v+uK9**{SNeO4AztkjYt=$Ep^G7wbMux8W9Mw_Qc$MSZEA zoZoI3w`*)8p5HmneH6jAF=zc_A>gTxq(Ia@a%l%pVZaqr#!uPi_I+2Ub&Jl`0cj!z@B%O`IZ}MzK1Z@HG{@RJOeuPZ>nl;kn{&V*01H2?eNY*^3FGep#=Rg%kQhI zbQ7-Y2-EOvJ{d9^DSZQT4)mBJB7nW1FePX9GHmafcKR-{nS`ws^X3I&XFagXS!5sR z8P*iEDGvwqEdFuXBmvT}=b3CL+nWYiTrvv*p_clSgOI#0# zm&P`#P(6WbK09&)xBTWinkPh*pwuq2a%R^He_UC>w=2jp2}(UW)21zezH-P{irF6Y zI_9^2$=iS$tQj79SgpzxRIqS<-!>%I7CVlCzSbC$i6*V>SB;N1g4e@~Ji3y>8iP5$ z9Z#6vbYZ;%n=|OPIV|0LAs9B_0H#amg~Fj8xIYR(J@u#|r<(tCu#?D~ce7+&}H+djFrz6YzwcGav9JR8n9WEk{s{bC2# zrO9xz5sSpK8`~(uiZhub(zw7`+(u@_Xhr$76CI@r$ght32X6Zkcn1I`TpDow*_bH7 zQK1Z>R1U{I4ztP19%jf=NEB||V>({Y-JKQWe>IVh6=Twc?IWTzBH9k4c4m82q}tjZ z*V~7dVw5X%C849rrDBBPciuJ$g%x{dQc%-JVIvrY*Dk4WreYt-XZe|Kd`$iizE_mGH%smz=a5%fe4Q!-@B3h)+UO?*F(nU z8%D!oi>IqS%Ed4}ch{aJ^;i8uR*k6_>KpX()ZDP3?rrZ}UE`Xe#HM9&HkZ<_yd;Dx z#nv*!0{h$DD^#JwgYymM{9iq zs%wqfH4NT1nq=Di2)XarZ`=xA7%`7SwM$wTl(M(oC!~bUsy)DpX@*cDM)k)fC|ss; zV>tX(Iaj=2Lr6=oEwJ`YtR##|xsVBXAH!Hdbw$V74zeBJ#oeWCavweTTOpaW_ zjlT{?!rM_&?nZWjX2X?X9>a~FcG|`i>&S(^YhHcZ-IYVA(XjUL?WvprE_i=m_j}EB z&vRpMWfr|k?<#`7z0sLTfG6p-1rAH`ZCE9`TEsf2^t3t0cyv-sJcSdR#}y7lQy;@RCi zC812e!dXLw%m;@ZY(% zMwicNgP%>?jHgnrUBy>YH^EXv`{xn9(q}yz%!6>lOS-bvp(jn zva4-vNCC{)Tv}Jet4QMpIw{uny>#hibs@e4uQ0($S$9Vl+b85Uc)ZV@wdBG&N7~A? zjJ{*XleX6oo0s6qzO1|9D92&hOy&vNt2RnUz*Bz%r2D*m>mAISq!{;%7-5dG(JRK9 zqMZR2t^$nU)g|L8X?rb)J>m%d%u}e) zl`tTUp2aLvxokzS8{98}Msm}X&#mEXMFz3NBM&}@Ei2_Ryx}V&`C!iiE~RJEcSYw8 zv9q9yu{~T4VlzT^)ym#`-@PhdziovSsGOGGPLJ~ULD$2c!7LL9V-H);s=&@wMV6|w zb}#i*6k#MwobAlj4K3-Vn6mPLC8+VJtI}5m#&_5 zFWSJ;N_(kXrPs5KU4ui0yu2|b?*)qvZ_dbe(cV1g+jkxf;3n=HT-3+9ET^6@Q>ZF! z?7VLFUTa8&f-M7Op-QID@&nLi zmt|J8*J#`9FCphbC;@KhE2aI9Z>&^YuIN?LGz?@}ecmlLr*;Va>4OcCqs& zy*Szw)A9wf9OR0CTJ+4MPo!~;@xf*EZaMxB>lZShQQ|U=OWX>WECRZqg z+AU??780=lS^c7+^}!vF=V-FhQmdo25|8xvHln7@+dvZUPeMy z*P@VnQC(FpwWtp}__dhL z0TgiPE;!FGMW{?7^{G|vFvT%-+pA_pl!v4r6GU=^?OSDQH>(HxkQvx+$_sfYdAiU( zuI&_g#Lp94b_jds>of}<-IFZ7E;YJ>#YUHm&8kN$d1|lZ+-_@&j`KN7CH-DnD=(3` z=GpdO*7B$?ka#zz2KNgM-XB1P?97?gK})6r%uMX&Z8EP0s9W9YjDjrV#6eCm$s;n! zND#W(%VXN2wNq8W!YK>t8}n%O0qGa|fIv;7vfBfxC4csA1yc_xI{gk!%Dk~oI@xRT zQx_@Hw|~)RU%{XM%EcrS(u&XBUy8UyG6v3M7T7CLbA*!evz1W-S_|&BiHGBVE zTLri6vVs>p@hGb6+J^@pL1~4hR#xLbDJ-c3+apB6?5BgMZ==-mjsZGxFurU1$UPtd zWv1HtuwLZgh3QiG#b@?gY>)3hYf5_!eq?+eJ<|T-Z3kBqp>QI_N235-zQW}@n$pN; zG-?6Xp?9vJr=I=1Kn-QYU8^c0lJ|}5%v0fF2e03mK^B%sE8r3N$?Rbnjva%w3*@KqoTuxftBp`%#u?JJZAT_kcXuK5dZ{FAX+p5Qr!_-0C$O13hn399vQI@+fbUzp~_fie3=b+8j2Fs@^+AALl4DNi|$L z@SblgfO@?`74*?7Rbj!+WW^xI6|e1aI8!oqnJS$eINM#*IMrltp)7cQj}2Qs5t9Y- zP@4+eI6*j5{Ji;GR^9W5bUvEk^F%W7yri^{7RV9Gjx|^D&QOgRRtyflwe~UDl0U^t z@I2#;tC2h7%vG-{YxCmU;1J)YQiB!e0}GF~%9@qG_KPhE;J3%u2tv?JYS0nkWHc#6QE?_xYskP+6+J7|Ye>DoJ}r~N6f&L(?g z1R~NIj^IL6y_9FL6M_D)VhOTJ^oVrjGp-=NO(_fimIOVC+7zE!*aJ-n-Qa1cz;`6>ny@CTLBLbUe9u-s=aoKQ zx<>VK>H69)8v%0E{Jq9Ku>l3Vk=c>uKpGeIcrrQA-868>Idab$u?lS+uD)&EU~4}Y z2@O2Yfkzcz9e2Mw>??(=K{f0yRB!hee1Wu~0cA22z+Gqu>LVS3gdhgaQWUrLXuM5yo_{uFQK zX_zi#=Yx13Lg9wK=Z>y8RiUVZJwTQskxt^GRjpvV@J_g&9d1ZidQRFG5gd}BzT97y zeyOm)^2gQmq$`->9gB9E%QMO%u~sNzcl_%JN1&gWTtl16+izfS=bh|yMOfusm%k}Q zU^bofJ=pusEnHA_*DBZZa~c&NVOQ>3^#hO*lC{CO&>Ty_5BiSwc0op2nxcKE>fui( zH&XJsh>0n%lf+-7PMH*d!xghxWf7LJ+Uk#0ztCLUw|$R#Plq)5>+i3nKtEmayk0i{ z5oWnu^{Q%G+Mjas)!Rb|_^=`57%b2;Vw&!jPXI^^NeYmEdpX|?hDgRFf4T~8Zi<&C-4y+A_t`gqGC z^eQ>!W9oULwk!I3AMA;3M2@gocxZ=vMXBNn>84QfSVR6?8{}Pz%;hZIvGc9lCOAwj zW9;ef@ErAa#;nY$W;R-nIL%`%!>hhQSscB(1VHm_7&|c}wAcU*?CTeI6M4P#SLSgov&HrHew0qMjFppYgiBMUSVQdOnsbH@ z%T16^2`Up?2qrI?`07$velNJoL zQl_Fe@^*Q(lI>0sHX@?sKL-cbb<7wca>j=_womUBB~{87+s*v;-sMNkau3Lmoa#ruTWVJjL&gq>Qk7znT;AVn9(D0Psk~U616Aeo zM3O@_D|p;+dKoAW0&h|anBz83Nl?(jfshcVO8NvE!-;M5$8TB$E22Etz%z~WZm1T2 z+wCWg#GTtfUpbJNzCY@PDQ*;n9Uk#LmOCIGwvG)gXU{d3L=44>+b4Sa>jrUgTHhC#E7g%6CdbgbiYLi7gE#Ss%wUe z4K%H~3`S}Sr~Ox6+w`Ad`?r6F?R~}0vSPW$B~1|zT@Yfta|(Pj>HzguV&>KkJ`BM9 z_~*b7;2Lp#2*$a+MV!}ZEstO&gpBc=j{D`m(&;5@m|`F1t(4wcwPUYETz>z|una5x zohR~Qu3qsn2_}tlVefK^HjXZG#j<0ZqK6(4DvZiu8z_sW*91=i2`gl^w9c9T%Dfk4 zU)QmH7&|uDw8~5U5UF)0dXC-gyH&T_3XExht(6sp^2Kuma@-vMy?!2;)(XO%+Y+8O zSLCI&h3_A-0hnoILtAYi!p(*;FQVjyERWOq@4Y8Q4+Q`~Z}($UxSSg!mN~p7{a6c3T=Qc->=`c z_*boCRRwbHmB9bH{NRd|p^c3h$Pzz>$_d5^In&KNC%BL(iL$B+4MEoDjJpbbcuZaq82Obz zA?=?Opr8KQY|BG=YaTbDyd2-6x>dP2nLBmWo1hh6xslD^51Tx?{zW&k{l_TO^K{Ls z{Y6r{_;l*xUz>DAOpU&Z{((2IM%hf?j^&a5!`~x${;vwnKk-g~7mxe~|1m^2v(9`y zvVRWm{|yDG|5e4zv>P!b!!;-V%?!}`{r|1<20>K*t9Cfful%)gc)b>=j03tdpa?jQ zW;T2V_WJ-O-mf1opB(>i(T4vhyaOGcW^#459o$FR3jeZ`@jHt! z<_@@i>+9~mBFH-;m}GPmg;#?~*W%$d7RD4~PA)L$Gp)E-Wl7Fi;}-Ipp~j2~&rmb+ z0KERmwZHsl+JElEEaxz3O3kj_-%`6m;nxZ9L+sq*U@wYFfQuOkX-Y|>_Oi=ocYK4_ zl;A(?8Tp6ed?S}8;LM?SAccprrPScXadZm2-MG3P@anps-%+LAS9pl9N*LBu ztRiU9m*DBp@e>@N8xTg6G?jp8>HjBu^9eeX+U%Zy53 z+nDje4uF>CL9_8fj9q9jd4?rl_Dc$L(HT=5x|B87qY%437>#~kE}@N|YI2(>nJ+4Q zwPC6)jmV?h_zv>^&Z~>8m~=rxL)^>VLdG4Uhg^6Rg`$hLDtJ^zJ~hmSn{_Mer1$4WU}M+o zo1DP?pYUzuQzJTvw;_&ARM*ssybKKVZr#?5X3e}6iX(6#xeNIeI#fFv*68mlYHb%J zsk#-Bk|!I~^<38T=-)Fv|MSEqK-$X@PM} zg&VkGQUa9WvBVo_)>N2VI3(+bR-mJD4$aOQFIZ|1VQQK%4_tV~JX^%h${^M@0`blM zjq{!}=aGUq%s4~FwY@&vo=*YAQAa;VNKWn8Z#W{DSLL)BB_m5@!!G@N*<-ib^g>qa z?EsxlRqTgTSw(z~)WO+=BN@nabWM;pNx?GQz{*g)ZO#>n;PjZi3Ncsb;#d>NPT=A4 zN_y+U{biJQWdQ`97|g~x`d(6ccFRn$%|fLh@4=*Scl2{-j=Sz6tHO**pebzT{L3ib znEf9QQ}v2-$YOf#7tDE{?DZ|z%d93lcG}*A++T2KHd1Uld{hm_aYNciWbOO8d3JJD zYK1S%-inyx){uAtGJ1Kok{9vR|AiY~LP1(!$|=I1OKO{j0nFh4}TW1~VKyX?z8=S2eah}<59jn!OCmYBS}0w?2H$awxp z(*|9kV#sx&Sf!XU;)e&o3SQRPe7ZxRZ(V3QearbWyvbZ2F=ifNfS;F|PUI8M^t@26 z90|xk_T>ajxCLmQ5N(tM5_Y=?%Dfoq*zIo_4AJ^& zp^~@1k1vr&Zwi0m^ddB9j_Y%Gs*8nFln7lyuCZP8xOrxBm?oGgp>8mnLKdey`5wvP zES+*|&YSS)rjfjE5y@ijcsT3Y`_#jGVh1igM#OkI2f+ z)dstOgo)y}ByU*Gis>lzr^YDSHeVzb8m*DWu#&A)*CoqzYi2BMN0hNUjpWhocpt?g z``IXcJ|!1)t4ScnbMA0wSi#|xq8euFk=I_e`{`uFb3U}<#uB}Z)>%;M#hWE`r%iCu zf*i2jyZZ4UG=SYf(+WIuJ88{#3T9CH73xe8cQo#n;9YS5?40XYkEAUZwRb@ z<;93Yzu=$}@#BP^Y_&88Uz3zxPLi=OE_6NZg+upmojwmpmw1XWg$n06D-!e|-F;0N zfj#qikxM1d(u=@gY)qNaOBtc|U&hEreQMQ)1FZMlD#10(ru%M)^lF$DCQL+kDOemO*u71f|F3+kqsS}j>XmZS}F7*3yB)rBC!AI7cY8s`X_d5u0J z>vy9u-esp3T_s9#l{>jF5xp5T3l2ku&W?`1_tM|>KhWoCt9KF;v`~=h6~+xdrGTZ1 zqItyS8pl5tt-s^}I$&JI-TYIl2@_ngwrxL>-Rc03m2zFeS8j7`^(frvR-EO~41T)ikQea8H!3*D|pxgMetbIu1T zqr$_UN^`})>S&x4$PF5TohL#)3zLRAxJ47wG884C@O;TTxj9J>3EN?(U>EXQyrT9b z*N{;mzjUL&nc9+HU|q2HxscH;tzJ&d*}x^h2g)n4eO1 zkEiZ-r-t*L9IsE0B%T*Pq9fG#Fh+1jA|+LqaAbhD2Xs9GW9xS2*w$G?tbWfC>kGY9 zX8`)loZFT0bw{k`?XIDGYlF|tz~7-FWHh^NKBisvq!Q~)3%k^(HuCj2@V9LejGPd} zLRY7!M5u(Ej(dcMnb3&)6U~pTkvIHlyU+4tHPcaN-jL^%D=N4fA`FJO4Gz-k9Se$l^a{84F?;v6SNwhm&jozV{$nCB$ zRr64u5YSiAprt7ieAqJ)JR!Rs@QjSSe_&vNPJARaA#dOIy(uS$xQwE|^;#-Y^rGt6 zmEdk7th%Z#_DcXti*3QU2#3MQc%NM)oIm;C{!P|ikvo>!1JLzS*M#r5+ zHBYx`?`+Pu%LdK-OcOM&v)Y!o-1Vzvy*X{^SI9hJ>UMR*qL{L)E(U<=li!vZBKYzm z_XJ);7CX=4+YTzxzZm+>4W?ql7hy{LVrs!C1YsX-!S~E3)Xe<}_M@0cOv`jMA>Ho&yBtC;Y zy?zHCYwpnw#bihAC26)<+R7c)6 z6qM5$VA+4V9opC-W1YrhJ5-EjXRWLoQ)`4?CZH42641pAlUC+1{a2>4iPO~$+g0Wn z`en;=!HIS%Exss(9NLYgsX~py$^Oumv$MHRm3^!Em^o+k@+4be5c+k_&W0V&r-9zd zst>VAoME&uOXt~>R)gFItJTn$Opn!c6k5JzyP=#@9%jau2`<;#YV)sc`^d;s=+l?G zB6l-O^S&r#E>!pT(}Wd&u13m*%m55?ML>fGiXj}@G$ii9Ff zQN)!+2)@9(e)d*pr39sVjsdpg>@fGJ@RCu30o zIgkvp1Q>5RXIA>AX=ruutt40ToX0n~ugHb1@&^5I<+^Q#vkQbht5eDL%k{0p^+ncy zCL~QjmeqDkwn;klUHH~z75jc5n7SMG%mcz6DO0L0Di`6f5p6y^8mTQe2vDTX)P>Z$ z`Ahuy$A3!5b5kb8kDMh7A3_#kLRmk_jTKScp;-fbdHXeP<`@N?ProzXgQgxL_K$7k zZC`5`7yaYs-yk%Hi*>+yBX) zuphrGI48x|ZL{1c*ga7F+bmSLcN3-6YSsc~J;+fy{06#n#H2oTo4dGxEy zsrJ)uP~8D5O>2)92n7ybL^!}|tu zE=1r@vzcE9h8xf4DNZYBcMhf-0{(DO?ugQ6Hv=;zw1w(2C$I{U`QcUY zZ*SdJM%)3W)%aKQo@EKBk`9no@RgI-8Qn!_ToB^Tv*%aR3e?&?4rH$FVtQlNjFJv= zWI+LK0&I~(fZ+U}$8G^6y%mb12cw3D?gB~U1V}3ptH%neEDyONcsh>@NM!kc^}bQX zR`cXVF^l72;9}263OC2X)pTSl2jiB9$;~(cU(L%DRx4+3x#-9F_v!*b&m~;n@a{Hh zd&Q65gC{s_B)9uWAV}L~AP0tqwIeon4%6BCrlttla}wkcr#l-R8Hjkr(vkc7v`iq3 z`H0MqZIwTa!p69xyWXB7djaE-r4A>gAaXx3;hEP6FS+d5q>NVScC?)M`}9t6A9WE022>Gnnb3^mjp|$C6nN3i_w8=J z4DH=?y%!1b9c1@|B6VbB&u1gLY!N=)pd{Gc5!IbL6wL&zG-QRw`c8d4>BdLDB>g=2 zjQW!}nKO}#b)f#ly3sdkUhVwPyZF9+fN0EdLJV<@&qzX2G_U9eKoe`Yyb>kRKAo|> z1EFJm$EED9KniChxyomkc|v2$Z|{Q{sr>a@vFhT!B+edsyfQ>e@HXgqgwqGFx#X;a z8R?w#!m|6I-s6>1SHUShi-N`B7!TNO6>{Mypf^63NIRB9EkMw277mJ*)U>RHiC7%^LOC1lqx zVFNY9b@eT~9Z8%CG;lIeZojsn_JfKw>*Xp_Tv`~wA1yw%Y-l0DlJ_X}2CdthvC;#y zuGH5nnooGj%40zuNo-CNFiP)>Cwx0H)RBtVUOB4!u|q|h;5ltOzL@rEgMoH20dagp z=xUqQMQ!YJob8vD!G-hBmM{(e1Slx{mswUIIEi2va?4XqJG#r)akMPFO}lJRfjB!^ z298UiwAyIWV|z&oRR#0i-~{Lk>3BR#Md1o-KJl8Y`wW|pgb`dn8>|Ep$=dgZyg{)j znwLbw91F{*7RvQCn1$JR zv(-8cH2d5%A=R(HSWMQfYXLp-7z{~MxK_5K6>ejg({jI2pmx5hx3tPVoc6@5>hh8k zRdj2>?o%