woocommerce/plugins/woocommerce-admin/client/marketplace
Thilina Pituwala d065b786f5
Remove the ability to update Woo.com extensions not available in WP.org plugin directory (#44279)
* Remove the hook for updating update_plugins transient with data fetched from Woo.com

This prevents the WP core from updating Woo.com plugins.

* Remove the hook for updating update_themes transient with data fetched from Woo.com

This prevents the WP core from updating Woo.com themes.

* Remove the class hand hooks used for updating the API response of WP.org with update URI's from Woo.com.

* Add change log file.

* Add update_plugins and themes transient update hooks back while removing the package from Woo.com extensions.

When a Woo hosted plugin has an update, this will allow showing the update message but block the ability to update.

* Adding a hook to modify the plugin update notification on plugins.php.

When a Woo.com hosted plugin has an update available it will show a message to install Woo Marketplace plugin, if it's not installed.

* Utility class for Woo Marketplace plugin.

* Check wether the Woo marketplace plugin is already installed before modifying update notice.

* Update docblocks.

* Add status end point for wccom-site API.

* Check the existence of marketplace plugin only after the plugins are loaded.

* Add WP.org plugin api response updater back to core.

* Function to identify if the market-place plugin is installed.

* Update status API response with installation status.

* Update the status variable push to store admin frontend with information about market-place plugin.

* Styles for woo-connect-plugin component.

* Component for displaying the message to install Woo Connect plugin based on the installation status.

* Add Woo Connect plugin notice to my-subscriptions page.

* Add Woo connect plugin message to discover page.

* Add Woo Connect install/download urls to constants file.

* Add a modal for asking the user to install Woo Connect plugin.

* Update strings with constants.

* Show the Woo Connect modal when user updating plugins without Woo Connect installed.

* Show Woo Connect install notifications only when the site is connected.

* Update plugin management page messaging.

* Update notification on connect screen.

* Update notifications on plugin management page.

* Remove additional spacing in Plugin Install Notice and spacing in the discover page results and the notice.

* Use notice component instead of Card.

* Minor improvements to readability.

* Add translation support for messages displayed on plugins.php.

* Update woo connect plugin installation URL (#45127)

* Ad functions for generating WooConnect plugin install URLs.

* Make WooConnect install url to available to marketplace components.

* Make WooConnect install url to available to marketplace components.

* Link install buttons to install URL with access_token and secret.

* Update Woo Update Manager download url.

* Show admin notice to install Woo Update Manager on plugins.php.

* Adding the view for admin notice for installing woo_update_manager.

* Show woo update manager installation notice on WC admin pages and make the notice dissmisable.

* Update the install url for Woo Update Manager by adding the product ID and introduce a filter to override the product ID.

* Change the plugin name to Woo Update Manager.

* Change the download url for woo update manager

* Fix the margin below the Woo Update plugin install notice.

* Rename Woo Connect to Woo Update Manager.

* Rename wccom-site status endpoint response variables based on plugin name changes.

* Update the plugin main file name for Woo Update Manager.

* Updating the download URL.

* Updating css class names and file names from `woo-connect-plugin` to `woo-update-manager`.

* Change wooConnect variables to wooUpdateManager.

* Rename WC_Helper_Plugin to WC_Woo_Update_Manager_Plugin and remove references to market place plugin.

* Extract and reuse the logic for creating the signature.

* Use WC built-in method to check if the current page is a WC page.

* Add source parameter for installer.

* Update text copies based on flows for in-app Woo Update Manager install message.

* Update admin notice based on the flows.

* Update connect store message.

* Update the text based on the latest flow and show a different message when WUM is installed but not activated.

* Use html text for install notice message.

* Implement the bubble showing number of updates available on WooCommerce -> Extensions menu. Add one to available Woo.com updates if WUM is not installed or activated.

* Update install url to new structure.

* Update download url for WUM.

* Add a method to get the id of the WUM.

* Remove WUM from available to install list of extensions on my-subscriptions tab.

* Remove the hard coded ID of the Woo Update Manager and use the slug to get the ID of the plugin based on update-check response.

* Fixing the notice generated due to empty body.

* Update CTA and image for the not connected screen.

* Increasing the left margin of the install notice to match admin notices.

* Add close button to modal with message to activate WUM.

* Add install/activate notice to Browse and Themes tabs.

* Add the view for showing admin notice for activating the plugin.

* Update plugin name on install admin notice.

* Show install or activate admin notice based on the context.

* Update comment

* Make the linked text shorter in plugin update message.

* Generate a signed auto-install URL for woo hosted plugins without helper API (#45313)

* Generate a signed auto-install URL for woo hosted plugins without helper API

* Use product slug in auto-install URL instead of product id.

* Update activate Woo Update Manager modal buttons.

* Change install url from Woo Update Manager ID to slug.

* Allow defining the menu title and page title separately for when adding menus and sub menus in WooCommerce Admin.

* Set the page title separately for WooCommerce Extensions menu.

* Fix the update count issue.

* Update the download URL for Woo Update Manager.

* Update the download link for WUM in admin notices.

* Show WUM admin notices on WC Admin pages only when the site is connected.

* Remove additional slash in plugin admin url.

* Add wum-installed parameter to the connect URL (#45702)

* Add wum-installed parameter to the connect URL

* Send status of Woo Update Manager installation on connection init.

* Revert "Add wum-installed parameter to the connect URL"

This reverts commit 4c55038b03.

---------

Co-authored-by: Denis Dvali <denis.dvali@automattic.com>

* Fix lint errors.

* Fix lint error.

* Fix lint errors.

* Fix js lint issues.

* Update Woo Update manager admin notice.

---------

Co-authored-by: Muhammad Anas <anastts.pk@gmail.com>
Co-authored-by: Denis Dvali <denis.dvali@automattic.com>
2024-03-20 15:02:23 +01:00
..
assets/images Marketplace: update no results screen for search 2023-11-22 13:37:37 +00:00
components Remove the ability to update Woo.com extensions not available in WP.org plugin directory (#44279) 2024-03-20 15:02:23 +01:00
contexts Marketplace: Fix the bug hiding connection warning (#44207) 2024-01-31 12:50:47 +03:00
stylesheets Add subscription install modal (#42009) 2023-12-14 12:45:40 +01:00
utils Marketplace: Add "Add to Store" button for free and WordPress.org products #43616 (#43983) 2024-01-24 23:02:20 +03:00
README.md Add Marketplace readme (#41600) 2023-11-22 07:03:37 +01:00
index.tsx Marketplace: hide search input when viewing subscriptions page on mobile 2023-10-06 12:34:58 +01:00
marketplace.scss Added top margin to `.woocommerce-store-alerts` to address https://github.com/Automattic/woocommerce.com/issues/18448. 2023-10-25 12:46:54 +01:00

README.md

Marketplace

This folder contains the components used in the Marketplace page found in WooCommerce > Extensions.

The page contains two parts, the Woo.com marketplace and a list of products the user purchased.

Marketplace Tabs

  • Discover: A curated list of extensions and themes.
  • Browse: All extensions.
  • Themes: All themes.
  • Search: Search results.

Marketplace API

The data for the Discover section is fetched from the /wc/v3/marketplace/featured endpoint. This behaves as a proxy to fetch and cache the content from the woocommerce.com/wp-json/wccom-extensions endpoint.

Themes, extensions, and search results are fetched directly from Woo.com.

My Subscriptions

This tab contains the list of all the extensions and themes the WooCommerce merchant has purchased from the Woo.com Marketplace.

The merchant needs to connect the site to their Woo.com account to view this list and install, update, and enable the products.

If a subscription is expired, the merchant will be prompted to renew it.

My Subscriptions API

My Subscriptions data uses /wc/v3/marketplace/subscriptions API endpoints to list, install, connect, and update products.

You can find a full list of endpoints in the subscriptions API source code.

Project Structure

The project is structured as follows:

  • components: The React components used in the Marketplace page.
  • contexts: React contexts.
  • utils: Functions used to interact with APIs.
  • stylesheets: Shared stylesheets.
  • assets: Images.

Development

This feature is part of WooCommerce Admin and uses the same development environment.