diff --git a/assets/images/ecomm-addon-ctb-icon.png b/assets/images/ecomm-addon-ctb-icon.png new file mode 100644 index 000000000..d055785d7 Binary files /dev/null and b/assets/images/ecomm-addon-ctb-icon.png differ diff --git a/bluehost-wordpress-plugin.php b/bluehost-wordpress-plugin.php index 614c116f2..ccc2a900a 100644 --- a/bluehost-wordpress-plugin.php +++ b/bluehost-wordpress-plugin.php @@ -12,7 +12,7 @@ * Plugin URI: https://bluehost.com * Update URI: https://github.com/bluehost/bluehost-wordpress-plugin * Description: WordPress plugin that integrates a WordPress site with the Bluehost control panel, including performance, security, and update features. - * Version: 3.14.1 + * Version: 3.14.2 * Requires at least: 6.4 * Requires PHP: 7.3 * Tested up to: 6.6.1 @@ -32,7 +32,7 @@ } // Define constants -define( 'BLUEHOST_PLUGIN_VERSION', '3.14.1' ); +define( 'BLUEHOST_PLUGIN_VERSION', '3.14.2' ); define( 'BLUEHOST_PLUGIN_FILE', __FILE__ ); define( 'BLUEHOST_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'BLUEHOST_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); diff --git a/composer.json b/composer.json index 62e626cdf..6d198c321 100644 --- a/composer.json +++ b/composer.json @@ -87,7 +87,7 @@ "newfold-labs/wp-module-marketplace": "^2.4.0", "newfold-labs/wp-module-migration": "^1.0.9", "newfold-labs/wp-module-notifications": "^1.5.0", - "newfold-labs/wp-module-onboarding": "^2.3.9", + "newfold-labs/wp-module-onboarding": "^2.3.11", "newfold-labs/wp-module-patterns": "^2.3.1", "newfold-labs/wp-module-performance": "2.0.0 as 1.9.9", "newfold-labs/wp-module-runtime": "^1.0.11", diff --git a/composer.lock b/composer.lock index fee1c165b..a127a31f9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "299652fc3b525561cc442a9293606416", + "content-hash": "b53ece273e521ab3acae571783cec0b6", "packages": [ { "name": "doctrine/inflector", @@ -298,16 +298,16 @@ }, { "name": "newfold-labs/wp-module-ai", - "version": "1.1.9", + "version": "1.1.10", "source": { "type": "git", "url": "https://github.com/newfold-labs/wp-module-ai.git", - "reference": "961dc65294b3b4a2c5cc4d2694bcff521cbd3ef8" + "reference": "ebb63253228ce82b972a25c3b28787f8ef7ba0d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/newfold-labs/wp-module-ai/zipball/961dc65294b3b4a2c5cc4d2694bcff521cbd3ef8", - "reference": "961dc65294b3b4a2c5cc4d2694bcff521cbd3ef8", + "url": "https://api.github.com/repos/newfold-labs/wp-module-ai/zipball/ebb63253228ce82b972a25c3b28787f8ef7ba0d8", + "reference": "ebb63253228ce82b972a25c3b28787f8ef7ba0d8", "shasum": "" }, "require": { @@ -336,10 +336,10 @@ ], "description": "A module for providing artificial intelligence capabilities.", "support": { - "source": "https://github.com/newfold-labs/wp-module-ai/tree/1.1.9", + "source": "https://github.com/newfold-labs/wp-module-ai/tree/1.1.10", "issues": "https://github.com/newfold-labs/wp-module-ai/issues" }, - "time": "2024-05-20T17:10:20+00:00" + "time": "2024-08-07T14:29:43+00:00" }, { "name": "newfold-labs/wp-module-atomic", @@ -1201,16 +1201,16 @@ }, { "name": "newfold-labs/wp-module-onboarding", - "version": "2.3.9", + "version": "2.3.11", "source": { "type": "git", "url": "https://github.com/newfold-labs/wp-module-onboarding.git", - "reference": "60a559a9418c3254bc2138b7f81be9888981d6ad" + "reference": "e9399e0ba9f0c185f630016e2bb68d29156dcd37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/newfold-labs/wp-module-onboarding/zipball/60a559a9418c3254bc2138b7f81be9888981d6ad", - "reference": "60a559a9418c3254bc2138b7f81be9888981d6ad", + "url": "https://api.github.com/repos/newfold-labs/wp-module-onboarding/zipball/e9399e0ba9f0c185f630016e2bb68d29156dcd37", + "reference": "e9399e0ba9f0c185f630016e2bb68d29156dcd37", "shasum": "" }, "require": { @@ -1256,23 +1256,23 @@ ], "description": "Next-generation WordPress Onboarding for WordPress sites at Newfold Digital.", "support": { - "source": "https://github.com/newfold-labs/wp-module-onboarding/tree/2.3.9", + "source": "https://github.com/newfold-labs/wp-module-onboarding/tree/2.3.11", "issues": "https://github.com/newfold-labs/wp-module-onboarding/issues" }, - "time": "2024-07-31T13:04:08+00:00" + "time": "2024-08-09T10:20:09+00:00" }, { "name": "newfold-labs/wp-module-onboarding-data", - "version": "1.1.15", + "version": "1.1.16", "source": { "type": "git", "url": "https://github.com/newfold-labs/wp-module-onboarding-data.git", - "reference": "2e998cb661491ce1b024bf49014242b047c2ae44" + "reference": "fe195d1bddc75b812e32d20e758544e5358e59de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/newfold-labs/wp-module-onboarding-data/zipball/2e998cb661491ce1b024bf49014242b047c2ae44", - "reference": "2e998cb661491ce1b024bf49014242b047c2ae44", + "url": "https://api.github.com/repos/newfold-labs/wp-module-onboarding-data/zipball/fe195d1bddc75b812e32d20e758544e5358e59de", + "reference": "fe195d1bddc75b812e32d20e758544e5358e59de", "shasum": "" }, "require": { @@ -1308,10 +1308,10 @@ ], "description": "A non-toggleable module containing a standardized interface for interacting with Onboarding data.", "support": { - "source": "https://github.com/newfold-labs/wp-module-onboarding-data/tree/1.1.15", + "source": "https://github.com/newfold-labs/wp-module-onboarding-data/tree/1.1.16", "issues": "https://github.com/newfold-labs/wp-module-onboarding-data/issues" }, - "time": "2024-07-24T15:27:59+00:00" + "time": "2024-07-31T11:51:46+00:00" }, { "name": "newfold-labs/wp-module-patterns", diff --git a/cypress.config.js b/cypress.config.js index c44407440..84f28f8a1 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -53,12 +53,13 @@ module.exports = defineConfig( { } } - // Exclude ecommerce tests for WordPress lower than 6.5 (6.4 or 6.3) or PHP lower than 7.4 (7.1, 7.2 and 7.3) + // Exclude Onboarding and ecommerce tests for WordPress lower than 6.5 (6.4 or 6.3) or PHP lower than 7.4 (7.1, 7.2 and 7.3) if ( semver.satisfies( config.env.wpSemverVersion, '<6.5.0' ) || semver.satisfies( config.env.phpSemverVersion, '<7.4.0' )) { config.excludeSpecPattern = config.excludeSpecPattern.concat( [ 'vendor/newfold-labs/wp-module-ecommerce/tests/cypress/integration/Site-Capabilities/**', 'vendor/newfold-labs/wp-module-ecommerce/tests/cypress/integration/Home/homePageWithWoo.cy.js', - 'vendor/newfold-labs/wp-module-onboarding/tests/cypress/integration/5-AI-SiteGen-onboarding-flow/*.cy.js' // Works but failing on cypress + 'vendor/newfold-labs/wp-module-ecommerce/tests/cypress/integration/Home/ecommerce-next-steps.cy.js', // Skip this since Onboarding does not support this version + 'vendor/newfold-labs/wp-module-onboarding/tests/cypress/integration/**' // Onboarding requires WP 6.5 or greater, as it uses the Wonder Theme which has the same requirement ] ); } diff --git a/package-lock.json b/package-lock.json index 6df06dc66..f8e73256f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bluehost-wordpress-plugin", - "version": "3.14.1", + "version": "3.14.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bluehost-wordpress-plugin", - "version": "3.14.1", + "version": "3.14.2", "license": "GPL-2.0-or-later", "dependencies": { "@heroicons/react": "^2.1.5", @@ -15,7 +15,7 @@ "@newfold-labs/wp-module-runtime": "^1.0.10", "@newfold/ui-component-library": "^1.1.0", "@reduxjs/toolkit": "^2.2.6", - "@wordpress/compose": "^7.3.0", + "@wordpress/compose": "^7.4.0", "@wordpress/dom-ready": "^4.4.0", "@wordpress/element": "^6.3.0", "@wordpress/html-entities": "^4.4.0", @@ -26,7 +26,7 @@ "lodash": "^4.17.21", "react": "^18.2.0", "react-error-boundary": "^4.0.13", - "react-router-dom": "^6.25.1", + "react-router-dom": "^6.26.0", "react-use": "^17.5.1", "semver": "^7.6.3" }, @@ -36,11 +36,11 @@ "@wordpress/env": "^10.4.0", "@wordpress/eslint-plugin": "^20.1.0", "@wordpress/scripts": "^27.9.0", - "cypress": "^13.13.1", + "cypress": "^13.13.2", "cypress-axe": "^1.5.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-plugin-import": "^2.29.1", - "tailwindcss": "^3.4.6" + "tailwindcss": "^3.4.8" }, "engines": { "node": ">=20", @@ -3644,9 +3644,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz", - "integrity": "sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.0.tgz", + "integrity": "sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA==", "engines": { "node": ">=14.0.0" } @@ -5551,19 +5551,19 @@ } }, "node_modules/@wordpress/compose": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.3.0.tgz", - "integrity": "sha512-TtAYdKnqQ/L/nF0+fmlQ1wAvm90X9HRBrAuEMNmkzKhews/5GR0rR3dNSMjlf7C6mNdTO3mkYt6AQf9fvZFoiQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.4.0.tgz", + "integrity": "sha512-yIJwiFxzMlpbFCYgWdQgyhyE//9SF90bi1j7YUmUKqLg9tUN7/IIok2lSGrvZfjuSe8sVgd5MHt33Emmi13zsw==", "dependencies": { "@babel/runtime": "^7.16.0", "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.3.0", - "@wordpress/dom": "^4.3.0", - "@wordpress/element": "^6.3.0", - "@wordpress/is-shallow-equal": "^5.3.0", - "@wordpress/keycodes": "^4.3.0", - "@wordpress/priority-queue": "^3.3.0", - "@wordpress/undo-manager": "^1.3.0", + "@wordpress/deprecated": "^4.4.0", + "@wordpress/dom": "^4.4.0", + "@wordpress/element": "^6.4.0", + "@wordpress/is-shallow-equal": "^5.4.0", + "@wordpress/keycodes": "^4.4.0", + "@wordpress/priority-queue": "^3.4.0", + "@wordpress/undo-manager": "^1.4.0", "change-case": "^4.1.2", "clipboard": "^2.0.11", "mousetrap": "^1.6.5", @@ -5578,12 +5578,12 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/deprecated": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.3.0.tgz", - "integrity": "sha512-K2GHXlwjx6GMhZjs52X1MXySCrqzh4IjoqF5IOcydMgWqOIE2++hMuB9Y55qN/Mhsrv/HO8Q1LaTxbEd6BuNJQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.4.0.tgz", + "integrity": "sha512-/a1BzMcY7loLbNRvnHIEbOPMdBNA3pq5tsK895JJtW1Jj14FhX1AD7m+q7lV8Famb8iRSea/SDM/wjdlqHzKJg==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^4.3.0" + "@wordpress/hooks": "^4.4.0" }, "engines": { "node": ">=18.12.0", @@ -5591,12 +5591,12 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/dom": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.3.0.tgz", - "integrity": "sha512-sf4h6jVqboRdhe3soyr5bt+Vpz24WG/AIMHm7pGaxfbV5jxx06ZZ8K1RKzhr7jF3wn7IgIc1wmMA+OFzEYqGyw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.4.0.tgz", + "integrity": "sha512-9UyPq7lNoXgPy0l+gnEIMq1lbEgMC3DXjfrVx08cKzpn23Gbmg3ZFybBKtnWVd0u/V64frUtIc/IQxXyYk3Ttg==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/deprecated": "^4.3.0" + "@wordpress/deprecated": "^4.4.0" }, "engines": { "node": ">=18.12.0", @@ -5604,9 +5604,9 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.3.0.tgz", - "integrity": "sha512-bpqwSXGyxPfhuxESKoAtL4ofB3CazzvcwcucTZ0g9Pat3KNuBaloSrPBliqqNOiSLWNH3nmpkaRmv4u89EdKAw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.4.0.tgz", + "integrity": "sha512-KO0gUx0KLhH3XCatg9ZOU1TH0fgyQUccAEIM8liErfgmrabHl8JhDoR2Uk5k0jNKZNPog7XxvKgPFVtCzvzQig==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -5616,9 +5616,9 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/is-shallow-equal": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.3.0.tgz", - "integrity": "sha512-sZ+fypqjYX0/DTAKsm1G9ND9Wn4d3Ju4lI7SLSmCKdUL5EPY3g/2LpKQKDqljh9m6Ex5NWp2XfU8UVXpkEfbMQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.4.0.tgz", + "integrity": "sha512-dby5FHzgasbTVw40HUsLKX68/+M8dBuf6LTqFm5n0KetdHUWoPRSAN/qun7Zu3p69jgqPtUhyjdwDdAgOtYamA==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -5628,12 +5628,12 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/keycodes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.3.0.tgz", - "integrity": "sha512-o+L110/Y9ufS2eWVG1gXFs6+jPsMNVZoGJCt4PLjMmVabke0iaYstFppUdtQiOEDbnnhX9MH3RRtqp2AoSnaRQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.4.0.tgz", + "integrity": "sha512-aba6ofBeuAqAUt967G94+yP1TlZWwQOzrwmTNa5ErkXqXhyYv8a0IFBLaWuKWfCbmaT2DcjxX4jNzxaMTE+EXA==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^5.3.0" + "@wordpress/i18n": "^5.4.0" }, "engines": { "node": ">=18.12.0", @@ -5641,9 +5641,9 @@ } }, "node_modules/@wordpress/compose/node_modules/@wordpress/priority-queue": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.3.0.tgz", - "integrity": "sha512-H7dGei1mFqKlz7NLFOGGtVgaBsORRaXeXNwWLI5rE0pI3XfGYd+zxNrG5aBzHw4fPqsITsxecNSaacc9fjqgjQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.4.0.tgz", + "integrity": "sha512-sMPNUeBiEaTGF+UH5RuAFc0SnzhWRmeKuNAzDJmQ0MezSbLq1oDUbIbeMR91kj717da8IWZsDOy0TKacyM5aOA==", "dependencies": { "@babel/runtime": "^7.16.0", "requestidlecallback": "^0.3.0" @@ -6519,12 +6519,12 @@ } }, "node_modules/@wordpress/undo-manager": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.3.0.tgz", - "integrity": "sha512-1XvU3GKpWeKFLCRx/3yEttRbIszD38vfH53XmCq2Y6IbWiyJLUGCnq4kiZjOaxA0o/DcAa4edscPyqmJj+wE+g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.4.0.tgz", + "integrity": "sha512-Z48K9wqv/7h06Qqef979wDxINFbP1FFwsRweAdi6FiMznoZC5IyGPoVRAIoN6NVRHb8vh9/pkxubNIXBIsrF8Q==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/is-shallow-equal": "^5.3.0" + "@wordpress/is-shallow-equal": "^5.4.0" }, "engines": { "node": ">=18.12.0", @@ -6532,9 +6532,9 @@ } }, "node_modules/@wordpress/undo-manager/node_modules/@wordpress/is-shallow-equal": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.3.0.tgz", - "integrity": "sha512-sZ+fypqjYX0/DTAKsm1G9ND9Wn4d3Ju4lI7SLSmCKdUL5EPY3g/2LpKQKDqljh9m6Ex5NWp2XfU8UVXpkEfbMQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.4.0.tgz", + "integrity": "sha512-dby5FHzgasbTVw40HUsLKX68/+M8dBuf6LTqFm5n0KetdHUWoPRSAN/qun7Zu3p69jgqPtUhyjdwDdAgOtYamA==", "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -9186,13 +9186,13 @@ } }, "node_modules/cypress": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.1.tgz", - "integrity": "sha512-8F9UjL5MDUdgC/S5hr8CGLHbS5gGht5UOV184qc2pFny43fnkoaKxlzH/U6//zmGu/xRTaKimNfjknLT8+UDFg==", + "version": "13.13.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.2.tgz", + "integrity": "sha512-PvJQU33933NvS1StfzEb8/mu2kMy4dABwCF+yd5Bi7Qly1HOVf+Bufrygee/tlmty/6j5lX+KIi8j9Q3JUMbhA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.1", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -18963,11 +18963,11 @@ } }, "node_modules/react-router": { - "version": "6.25.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz", - "integrity": "sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.0.tgz", + "integrity": "sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==", "dependencies": { - "@remix-run/router": "1.18.0" + "@remix-run/router": "1.19.0" }, "engines": { "node": ">=14.0.0" @@ -18977,12 +18977,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.25.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.1.tgz", - "integrity": "sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.0.tgz", + "integrity": "sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==", "dependencies": { - "@remix-run/router": "1.18.0", - "react-router": "6.25.1" + "@remix-run/router": "1.19.0", + "react-router": "6.26.0" }, "engines": { "node": ">=14.0.0" @@ -21265,9 +21265,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", - "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.8.tgz", + "integrity": "sha512-GkP17r9GQkxgZ9FKHJQEnjJuKBcbFhMFzKu5slmN6NjlCuFnYJMQ8N4AZ6VrUyiRXlDtPKHkesuQ/MS913Nvdg==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/package.json b/package.json index a10409c0b..bcde71d80 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bluehost-wordpress-plugin", - "version": "3.14.1", + "version": "3.14.2", "description": "WordPress plugin that integrates your WordPress site with the Bluehost control panel, including performance, security, and update features.", "author": { "name": "Bluehost", @@ -38,7 +38,7 @@ "@newfold-labs/wp-module-runtime": "^1.0.10", "@newfold/ui-component-library": "^1.1.0", "@reduxjs/toolkit": "^2.2.6", - "@wordpress/compose": "^7.3.0", + "@wordpress/compose": "^7.4.0", "@wordpress/dom-ready": "^4.4.0", "@wordpress/element": "^6.3.0", "@wordpress/html-entities": "^4.4.0", @@ -49,7 +49,7 @@ "lodash": "^4.17.21", "react": "^18.2.0", "react-error-boundary": "^4.0.13", - "react-router-dom": "^6.25.1", + "react-router-dom": "^6.26.0", "react-use": "^17.5.1", "semver": "^7.6.3" }, @@ -59,11 +59,11 @@ "@wordpress/env": "^10.4.0", "@wordpress/eslint-plugin": "^20.1.0", "@wordpress/scripts": "^27.9.0", - "cypress": "^13.13.1", + "cypress": "^13.13.2", "cypress-axe": "^1.5.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-plugin-import": "^2.29.1", - "tailwindcss": "^3.4.6" + "tailwindcss": "^3.4.8" }, "scripts": { "build": "NODE_ENV=production wp-scripts build", diff --git a/src/app/pages/pages-and-posts/ecommAddonCTB.js b/src/app/pages/pages-and-posts/ecommAddonCTB.js new file mode 100644 index 000000000..934f78a29 --- /dev/null +++ b/src/app/pages/pages-and-posts/ecommAddonCTB.js @@ -0,0 +1,44 @@ +import { Button, Card, Title } from '@newfold/ui-component-library'; +import ecommAddonIconUrl from 'Assets/images/ecomm-addon-ctb-icon.png'; + +const EcommAddonCTB = () => { + const EcommAddonCtbIcon = () => ( + + ); + + return ( + + + + + { __( 'Transform your store!', 'wp-plugin-bluehost' ) } + + + { __( + 'Our eCommerce bundle includes a comprehensive suite of advanced tools designed to boost the performance of your WooCommerce store.', + 'wp-plugin-bluehost' + ) } + + + + + + { __( 'Learn More', 'wp-plugin-bluehost' ) } + + + + + ); +}; + +export default EcommAddonCTB; diff --git a/src/app/pages/pages-and-posts/index.js b/src/app/pages/pages-and-posts/index.js index ea359e715..8dfa9bcc9 100644 --- a/src/app/pages/pages-and-posts/index.js +++ b/src/app/pages/pages-and-posts/index.js @@ -6,6 +6,7 @@ import BlogPosts from './blogPosts'; import BookingAndAppointments from './bookingAndAppointments'; import ProductsPages from './ProductsPages'; import AppStore from '../../data/store'; +import EcommAddonCTB from './ecommAddonCTB'; const PagesAndPosts = () => { const { store } = useContext( AppStore ); @@ -77,10 +78,12 @@ const PagesAndPosts = () => { { window.NewfoldRuntime.isWoocommerceActive && ( ) } - { window.NewfoldRuntime.isYithBookingActive && - window.NewfoldRuntime.isWoocommerceActive && ( - - ) } + { window.NewfoldRuntime.capabilities.hasYithExtended && + window.NewfoldRuntime.isWoocommerceActive ? ( + + ) : ( + + ) } diff --git a/src/app/pages/settings/contentSettings.js b/src/app/pages/settings/contentSettings.js index ce63f8323..5121e30a3 100644 --- a/src/app/pages/settings/contentSettings.js +++ b/src/app/pages/settings/contentSettings.js @@ -157,7 +157,7 @@ const EmptyTrash = ( { setError, notify } ) => { { + cy.injectAxe(); + cy.wait( 500 ); cy.checkA11y( '.wppbh-app-body' ); } ); diff --git a/tests/cypress/integration/pages-and-posts.cy.js b/tests/cypress/integration/pages-and-posts.cy.js index fe5dd6e05..dbc0c5ddf 100644 --- a/tests/cypress/integration/pages-and-posts.cy.js +++ b/tests/cypress/integration/pages-and-posts.cy.js @@ -1,68 +1,68 @@ -describe( 'Pages & Posts', function () { +describe('Pages & Posts', function () { let NewfoldRuntime; - before( () => { + before(() => { cy.visit( '/wp-admin/admin.php?page=' + - Cypress.env( 'pluginId' ) + - '#/pages-and-posts' + Cypress.env('pluginId') + + '#/pages-and-posts' ); cy.window() - .its( 'NewfoldRuntime' ) - .then( ( data ) => { + .its('NewfoldRuntime') + .then((data) => { NewfoldRuntime = data; - } ); + }); cy.injectAxe(); - } ); + }); - it( 'Pages & Posts Exists', () => { - cy.get( '.wppbh-app-pagesAndPosts-page' ) - .contains( 'Pages & Posts' ) + it('Pages & Posts Exists', () => { + cy.get('.wppbh-app-pagesAndPosts-page') + .contains('Pages & Posts') .scrollIntoView() - .should( 'be.visible' ); - } ); + .should('be.visible'); + }); - it( 'site pages Exists', () => { - cy.get( '.wppbh-app-site-page' ) - .findByText( 'Site Pages' ) - .should( 'exist' ); - cy.get( '.wppbh-app-site-page' ) - .find( 'a[href="edit.php?post_type=page"]' ) + it('site pages Exists', () => { + cy.get('.wppbh-app-site-page') + .findByText('Site Pages') + .should('exist'); + cy.get('.wppbh-app-site-page') + .find('a[href="edit.php?post_type=page"]') .click(); - cy.url().should( 'include', 'edit.php?post_type=page' ); - cy.go( 'back' ); + cy.url().should('include', 'edit.php?post_type=page'); + cy.go('back'); - cy.get( '.wppbh-app-site-page' ) - .find( 'a[href="post-new.php?post_type=page"] Button' ) + cy.get('.wppbh-app-site-page') + .find('a[href="post-new.php?post_type=page"] Button') .click(); - cy.url().should( 'include', 'post-new.php?post_type=page' ); - cy.go( 'back' ); - } ); + cy.url().should('include', 'post-new.php?post_type=page'); + cy.go('back'); + }); - it( 'Blog posts Exists', () => { - cy.get( '.wppbh-app-blog-posts' ) - .findByText( 'Blog Posts' ) - .should( 'exist' ); - cy.get( '.wppbh-app-blog-posts' ).find( 'a[href="edit.php"]' ).click(); - cy.url().should( 'include', 'edit.php' ); - cy.go( 'back' ); + it('Blog posts Exists', () => { + cy.get('.wppbh-app-blog-posts') + .findByText('Blog Posts') + .should('exist'); + cy.get('.wppbh-app-blog-posts').find('a[href="edit.php"]').click(); + cy.url().should('include', 'edit.php'); + cy.go('back'); - cy.get( '.wppbh-app-blog-posts' ) - .get( 'a[href="post-new.php"] Button' ) + cy.get('.wppbh-app-blog-posts') + .get('a[href="post-new.php"] Button') .click(); - cy.url().should( 'include', 'post-new.php' ); - cy.go( 'back' ); - } ); + cy.url().should('include', 'post-new.php'); + cy.go('back'); + }); - it( 'Bookings & Appointments Exists', () => { + it('Bookings & Appointments Exists', () => { if ( - NewfoldRuntime.isYithBookingActive && + NewfoldRuntime.capabilities.hasYithExtended && NewfoldRuntime.isWoocommerceActive ) { - cy.get( '.wppbh-app-bookings' ) - .findByText( 'Bookings & Appointments' ) - .should( 'exist' ); - cy.get( '.wppbh-app-bookings' ) + cy.get('.wppbh-app-bookings') + .findByText('Bookings & Appointments') + .should('exist'); + cy.get('.wppbh-app-bookings') .find( 'a[href="edit.php?post_type=yith_booking&yith-plugin-fw-panel-skip-redirect=1"]' ) @@ -72,9 +72,9 @@ describe( 'Pages & Posts', function () { 'include', 'edit.php?post_type=yith_booking&yith-plugin-fw-panel-skip-redirect=1' ); - cy.go( 'back' ); + cy.go('back'); - cy.get( '.wppbh-app-bookings' ) + cy.get('.wppbh-app-bookings') .find( 'a[href="edit.php?post_type=yith_booking&yith-plugin-fw-panel-skip-redirect=1"] Button' ) @@ -84,30 +84,43 @@ describe( 'Pages & Posts', function () { 'include', 'edit.php?post_type=yith_booking&yith-plugin-fw-panel-skip-redirect=1' ); - cy.go( 'back' ); + cy.go('back'); } else { - cy.findByText( 'Bookings & Appointments' ).should( 'not.exist' ); + cy.get('.wppbh-app-transform') + .findByText('Transform your store!') + .should('exist'); + cy.get('.wppbh-app-transform') + .find( + 'a[href="admin.php?page=bluehost#/marketplace/product/6049dddb-1303-4c41-b3c0-242881697860"]' + ) + .first() + .click(); + cy.url().should( + 'include', + 'admin.php?page=bluehost#/marketplace/product/6049dddb-1303-4c41-b3c0-242881697860' + ); + cy.go('back'); } - } ); + }); - it( 'Products Exists', () => { - if ( NewfoldRuntime.isWoocommerceActive ) { - cy.get( '.wppbh-app-products' ) - .findByText( 'Products' ) - .should( 'exist' ); - cy.get( '.wppbh-app-products' ) - .find( 'a[href="edit.php?post_type=product"]' ) + it('Products Exists', () => { + if (NewfoldRuntime.isWoocommerceActive) { + cy.get('.wppbh-app-products') + .findByText('Products') + .should('exist'); + cy.get('.wppbh-app-products') + .find('a[href="edit.php?post_type=product"]') .click(); - cy.url().should( 'include', 'edit.php?post_type=product' ); - cy.go( 'back' ); + cy.url().should('include', 'edit.php?post_type=product'); + cy.go('back'); - cy.get( '.wppbh-app-products' ) - .find( 'a[href="post-new.php?post_type=product"] Button' ) + cy.get('.wppbh-app-products') + .find('a[href="post-new.php?post_type=product"] Button') .click(); - cy.url().should( 'include', 'post-new.php?post_type=product' ); - cy.go( 'back' ); + cy.url().should('include', 'post-new.php?post_type=product'); + cy.go('back'); } else { - cy.findByText( 'Products' ).should( 'not.exist' ); + cy.findByText('Products').should('not.exist'); } - } ); -} ); + }); +});
+ { __( + 'Our eCommerce bundle includes a comprehensive suite of advanced tools designed to boost the performance of your WooCommerce store.', + 'wp-plugin-bluehost' + ) } +