https://forum.remirepo.net/viewtopic.php?id=3563, Error log message: The timeout specified has expired: AH01075: Error dispatching request to …. Information that appears on the plugin update information screen, such as the changelog, uses a page, so it is very easy to create, update, add images, video, or whatever you can do with the page editor in WordPress. DO NOT DELETE PRODUCTS if the API checkbox has been selected. WP Version Tested Up To: Highest version of WordPress software was tested on. In the Actions pull-down menu, select only GetObject, then paste arn:aws:s3:::your-bukcket-name/* into the Amazon Resource Name (ARN) field. If the request is authenticated with an instance ID, then the URL to the file download is returned. When SmartCache is combined with object caching the result is blazing fast speed. If the endpoints above are not displayed in the My Account dashboard go to Settings > Permalinks and save twice to flush the rewrite rules, so these new endpoints are included. More would need to be added to the query string to provide all the required information to activate the API Key. The WooCommerce API Manager PHP Library for Plugins and Themes is a PHP Library that can be dropped into a plugin and theme for API Key authentication and software updates with the WooCommerce API Manager. Required keys if not authenticating: product_id, plugin_name. That means we can offer up to 95% discounts on must-have commercial WordPress plugins. The product would be hosted on a WooCommerce server with WooCommerce API Manager generating the API Key, and authenticating access via the APIs. The number one rule to remember is to ALWAYS BACKUP your website before updating to a Major or Minor version. The last option is to provide an remote URL to file in another location. Easily build incredible, professional websites with these plugins… And many more! Go to WooCommerce > Status > Logs > wc_am_db_updates … will display the current status of the API Manager data update process. It also manages the activation and updates for every valid activation. There are several differences with the API tab on a Variable type product. At the end of this URL + query string any added keys and values would be added using ampersand (&), so it would look something like this: http://dev.toddlahman.com/?wc-api=wc-am-api&key=value. If a product is duplicated, make sure the API information is unique to the newly created product. A preconfigured Postman .json file collection template is included to make it easy to test the API functions. The most frequently used Product types are Simple, Variable, Simple Subscription, Variable Subscription, and Group. The API Resources table shown below hides the Product Order API Key. The forward slash at the end of the URL should be taken into account when building the query string so that there is not a double forward slash (//) between the root URL and the query string. Keep your old License Key plugin activated, and setup the WooCommerce API Manager products as shown in this document. If these constants are absent go to. The query string contains a series of keys and values. The WooCommerce API Manager secures your software with API License Key activations/deactivations, and provides automatic updates of plugins and themes to increase customer satisfaction and convenience. The ampersand (&) cancontenates the next key=value to the query string. Note: if the object value is defined as a URL, remote the http:// or https://, since some server security will mangle the entire query string, and break it as a result. Each download URL is created on request, and expires to prevent download abuse on sites other than yours. All resources are limited. If the product is Downloadable there are several options. A number (positive integer) sets a number of days to limit access to the API Resource, so 365 would be a limit of one year. The WooCommerce API Manager comes with an example plugin, an example theme, and pre-built PHP classes to speed development. If the product_id is left blank the customer enters the product_id, if the product_id is hard coded, then the customer will not need to enter the product_id. Stay focused, and follow number 1 and 2. Now that an IAM user has been created with limited Amazon S3 access it is time to go to Amazon S3 and create a bucket to hold the files that will be downloaded. WooCommerce API Manager Sell API Keys because Software then Automated Updates because of Plugins then Themes. 500 API requests with 10 request concurrency. Great for customers who want to use a single API Key for everything. As of version 2.1, the API Manager authenticates with Amazon S3 using AWS Signature Version 4. Required keys: api_key, product_id, instance. An instance ID should only exist from the start of an activation, throughout all API requests using that activation, until that activation is deactivated, and then you could save the instance ID if that object will be activated again later, or delete the instance ID so that a new unique instance ID is created for a new unique activation of the same object. These IP addresses can be either IPv4 or IPv6. The record is searched for using the API Key and Product ID, so check to make sure both of those values are correct on the Order screen API Resources meta box, or the API Keys tab in the customer’s My Account dashboard. With the help of this plugin, you can secure your software products with API key, as well as provide automatic updates. Mean requests per second 13.03, which is 781.8 per minute, or 46,908 per hour. The WooCommerce API Manager makes it easy to customize each specific product by using the API settings form. The API Access Expires option sets a time limit for an API Resource, which is the product purchased. The WooCommerce API Manager turns WooCommerce Products into an API Resource that can be accessed with an API Key, aka License Key. The customer uses the API Key to access the API Resource, which is controlled by WooCommerce API Manager. Woocrack.com – WooCommerce API Manager is a WooCommerce Extensions being developed by Woothemes. In fact, the WooCommerce API Manager performed better as the request load increased, and at a rate of between 43,884 to 88,308 requests per hour, or 12.19 to 24.53 requests per second. define('WC_AM_AWS3_SECRET_ACCESS_KEY', 'your_secret_key'); URL Expire Time: Download URLs on the My Account dashboard, and for software updates, can be set to expire between 5 and 60 minutes after they are created. There is a link to create the Dropbox app key following the Save to Dropbox App Key setting on the API Manager settings screen. wc_print_r( $resources, true ) ); Postman is recommended for remote API testing. Once a page/doc is selected, an Edit link appears. Select the S3 Bucket Policy from the pull-down menu, which should automatically select the Amazon S3 for the AWS Service in the form. The pre 2.0 API Keys will still work for activation, deactivation, and status queries, but may not work for updates in all cases if the pre 2.0 version of the PHP Library is being used for WordPress plugins and themes. PHP 7.0 or greater. Each simple and variable variation can have a single number of activations, or unlimited activations, for purchase, or for variable product variations, each variation can have a different number of activations, including one variation that has unlimited activations. An API Key provides access to support and plugin updates for one year. If using a load balancer, or some other frontend application, the server must still send an IP address in the WC_AM_TRUSTED_SOURCES list to be authorized for API access. (Deprecated – Do Not Use) Software Title: This field was used prior to API Manager version 2.0. These values can be changed, or left empty. WooCommerce Products will be automatically populated with tabs, and content for those tabs, when the product is an API Manager Product. More than one file can be added to the same Amazon S3 bucket to keep them organized in the same place. The API Manager assigns a limited number of API Key activations per product purchase. After setting the Dropbox App Key in the API Manager settings, a Save to Dropbox button will appear on the API Downloads page in the My Account dashboard. Why are activations deleted? Mean requests per second 26.17, which is 1,570.2 per minute, or 94,212 per hour. Save to Dropbox App Key: This creates a Save to Dropbox link in the My Account > My API Downloads section where customers can save their download directly to their Dropbox account. API Resources for the order status “processing” will only exist if WooCommerce > Settings > Products > Access Restriction > “Grant access to downloadable products after payment” is selected. Make sure under the Guest Check section that the “Allow customers to place orders without an account” checkbox is unchecked as shown in the screenshot above. Migration from other License Key plugins/add-ons/extensions is easy, such as migration from WooCommerce Software Add-On. To create a pull-down menu on the frontend product page a custom product attribute is needed. WooCommerce API Manager Product Tabs plugin adds WooCommerce API Manager Product document tabs to the frontend product page when using a theme that supports tabs such as the Storefront theme. The WooCommerce API Manager makes it easy to customize each specific product by using the API settings form. Below are some server settings to check, if you have your own server, which are listed below as Apache errors, but are not Apache specific. All digital products presented on the website are released under GNU General Public License. If the product is an API product, and the API Access Expires time limit has expired, the API Resource will not be displayed in the Order screen API Resources meta box, be available to the customer via the API, or be displayed in the My Account dashboard. Found under WooCommerce > Settings > Advanced > Account Endpoints. If a new order for the API Resource is generated, a new Product Order API Key is generated to manage that API Resource, which means the customer will need to deactivate their software and reactivate using the new Product Order API Key. Learn more, including how to control cookies. WooCommerce API Manager Features : Automatically generated API License Key emailed to customer after transaction success; Amazon S3 is fully integrated to serve software files with secure links that expire. Send API Resource Data: More detailed information about the product can be sent if this option is on, although it is not required. All resources are limited. Have a question before you buy? Open the Identity and Access Management (IAM) dashboard, click on Users, then click on the new IAM user you created, then copy the User ARN, and save it for the next step. Client software sends a query string in an HTTP(s) request to the API Manager using either POST or GET. Orders that have a “processing” status before “Grant access to downloadable products after payment” is selected will not have API Resources available until the order status has changed to “completed,” or the order is new and has a “processing” status, or has been changed to “processing” status. To make it easier for new customers it is recommended to check the checkbox for “Allow customers to create an account during checkout” under the Account creation section. If the client is using a Master API Key then the client only needs to change the Product ID, or download new software that has the Product ID, to reactivate the API Key. Version: The currently available software version in the store. API Resources only exist for an order if the order has a “completed” or “processing” status. WordPress Plugin: The lowercase name of the plugin directory, a forward slash, then the name of the root file. When an update is available the update details will be displayed. A bucket can be organized into folders if needed. A Patch would be 1.1.0 to 1.1.1. Going forward, the simplest way to manage new file releases is to keep the name the same, and replace the old file with the new file in the same Amazon S3 bucket, so the Link will remain unchanged. The Product ID can be found by customers under the My Account > API Keys > Product ID column, and it is sent with all completed order emails. API Keys for WooCommerce Subscription products will only work if the subscription has an Active or Pending Cancellation status. Why are activations deleted? The WooCommerce API Manager also checks authentication credentials for each customer automatically to ensure authorized customers can only download the software they purchased. Below is a list of values for the wc_am_action key. Same as wc_am_action=information, except the response format is serialized, which is required to work with WordPress plugin and theme update requests that use the pre-2.0 API Manager PHP Library. The URL is created when the My Account > API Downloads page loads, and it expires in 5 – 60 minutes depending on your setting. Deleting the product will break all client API requests for that product. The setting allows for file downloads from Amazon S3. If you are into software selling business, then API Manager is the best companion for you. API Manager products must be purchased by customers with an existing account, or an account that is created at the time of purchase, so the customer account can be assigned a User ID, which is a critical property in secure authentication through the API to your store. If hard coding the Product ID into client software is too cumbersome, add a form field to allow the customer to add the Product ID themselves. These URLs are secure, will be generated on demand, and will expire depending on your setting, but will exist no longer than 60 minutes. Unlimited Activations: Sets a default number of activations to 100,000. Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz, 2 cores, Web server is Nginx 1.16.1 setup for HTTP/2. Client software will, or should, receive an error if it tries to send a query with a Product ID that is no longer considered active, but the customer may not realize he/she would need to delete activations in his/her My Account dashboard before reactivating the client software, so those activations are deleted to eliminate known support issues customers commonly have related to this. There are different ways to setup restricted users, and Amazon has a lot of documentation in this regard, but the overall objective is better security by limiting access to specific resources. WooCommerce API Manager give you abilites to secures your software with API License Key activations/deactivations, and provides automatic updates of plugins and themes. Activation Limit: Sets the API Key activation limit for the product. It is best to have updated WooCommerce within the past year to avoid breaking changes. The forward slash is the delimiter, and the asterisk means anything below the bucket level, including all files. Variable Products and Variable Subscriptions must send the Product ID (an integer) or software updates will break. One of the issues in using the woocommerce_downloadable_product_permissions table began in WooCommerce version 3.0. To access the free product, free API Resource, customers will still be required to create, or have, an account as a login is required to maintain API endpoint security. Page URL: For WordPress plugins this is the plugin homepage. This model can also be used for OEM. Custom User Registration Fields for WooCommerce 1.6.6, All Products for WooCommerce Subscriptions 3.1.26, WooCommerce Additional Variation Images 1.9.0. Do a Google search for tutorials on how to get the most out of the User Switching plugin. To implement, the remote server is required to add an ip_address query string key with the server’s IP address for the value to the HTTP request sent to the API. Provide a clear explanation of the issue, including how support can reproduce the issue, provide screenshots, or provide login credentials for support to see for themselves and take a closer look. Note: If the return value for status_check is active, or for activated is true, then the time limit has not expired and the API Key is still active. All products work on an unlimited number of websites (domains) (unlimited license). Once the API checkbox is checked, it cannot be unchecked, and the product cannot be deleted from the store. The Master API Key will be displayed. Response times for requests are measured in milliseconds. This is useful when troubleshooting, investigating issues, and confirming template overrides are working as expected from the user’s view. The WooCommerce > Settings > API Manager screen has form fields for the Amazon S3 keys will be creating, and the secret key is strongly encrypted, however it is much more secure to put the keys in wp-config.php using the defined constants detailed in the Settings section above. The WooCommerce API Manager turns WooCommerce Products into an API Resource that can be accessed with an API Key, aka License Key.API Resources (products) can be software, a service, an iPhone or Android App, a membership, a subscription, or anything that can be accessed over the Internet. Design a complex store from scratch, extend a store for a client, or simply add a single product to a WordPress site—your store, your way. It automates the process of generating License Key and mailing it to the customer. The Delete button will remove an activation. This method can also be used to disable software if the API Key has expired. If you already have the plugin or theme already on your site. The docs that are displayed can be enabled/disabled on the settings screen. On the Order Screen there will be three meta boxes: Master API Key, API Resources, and API Resource Activations. When setting up a Grouped product, the parent product in the group will not have the option to make it an API product, but the products in the group will if they are Simple or Variable products, including WooCommerce Subscription products. For this to work however, the store domain must be added to Drop-ins domains, and the settings under the Details tab must be set as well. An Amazon S3 region must be chosen, and is listed in the Amazon S3 dashboard in the bucket details row. The PHP Library was written to make it quick and easy to connect a WordPress plugin or theme to the API Manager, but you can write your own using the API documentation below. The documents at that time expected variable product variations to be setup with the exact same product using the exact same download file URL, having the exact same Software Title, and only differing by the number activations, however some stores used the same Software Titles for all the products on the store, and the same file, while others had created a multitude of other variations of this concept, which caused many issues. API Resources and API Resource Activations will be displayed on the Switched Subscription order screen rather than the parent order screen after the client chooses to switch their subscription. Whenever a product file is download from Amazon S3 through the API Manager now, the download request will be authenticated through the IAM user permissions. A floating license is an API Key that can be used to unlock a computer or software if there is a free license available. EYEWP.COM has the world’s largest collection of GPL plugins, themes & templates so just think about what you need for your site & we assure you that you can find here. The remaining fields are docs linked to plugin “view details” tabs. The root account is given full access to the file. Please read https://docs.woocommerce.com/document/digital-downloadable-product-handling/ for more information on how adding/changing Downloadable files URLs on products after WooCommerce 3.0 would cause download/update URLs to stop working. Product Order API Key and Associated API Key are granted limited privileges by the Master API Key. After the plugin is activated, the number of activations remaining is displayed. To build on the URL + query string we could add a request to activate an API Key such that: http://dev.toddlahman.com/?wc-api=wc-am-api&wc_am_action=activate. It is compatible with almost all the WooCommerce plugins and fully integrates its functionality with other extensions. Open the Amazon S3 dashboard, select the new bucket > Permissions > Bucket Policy. Now click Save at the top right of the screen. Click on Overview and select the file that was uploaded. If you are thinking of a customer-centric system for your software products, WooCommerce API Manager plugin might be really useful for you. WooCommerce API Manager Extension. If new Amazon S3 buckets are needed, follow the directions here, then copy and past the bucket policy code snippet, and modify the User ARN and bucket name as needed. Required keys if not authenticating: product_id, plugin_name. This is why not hard coding the product_id is the preferred method for variable product variations as shown in the next example. $19. The user account will be completely disabled, and the My Account dashboard will reflect this disabled status. Unlimited activations must have a value set, such as 1000. The frontend product page will then display the different activation limit and pricing for each variation of the variable product as shown below. The old API Keys, pre 2.0, are considered custom API Keys since they vary from the current API Key format. the files do not pass through the "third hands", so we can guarantee that you get the original product! If Unlimited Activations is selected, then Activation Limit is hidden. Below is an example of how to set this up with a Variable product that has three variations of the same product with different API Key activation limits. How this is implemented is completely up to the software author. *** API Manager Changelog *** REQUIRED: WooCommerce 3.4. ORIGINAL: EXACT same Extension being distributed by WooCommerce.com. We Purchase And Download From Original Authors, EXACT same Extension being distributed by WooCommerce.com. Last Updated: When the software was last updated. An instance ID is used for an activation, and for all API requests related to that activation, such as a status request. If Unlimited Activations is selected, then Activation Limit is hidden. Once this option is enabled, customers who already purchased this product will have their API Key activation limit increased to match the limit value that is set, but the update is only triggered when the customer data for the product is pulled from the database, such as when the customer views the My Account dashboard > API Key tab. When a Downloadable file is added to a product, that first file URL is used for software updates and My Account API Downloads. ), http://dev.toddlahman.com/?wc-api=wc-am-api&wc_am_action=update&instance=p1uOusaNM5ub3&product_id=62912&version=1.0&api_key=448567cf667c299bb706df6fe64ed2b44c7d37ba&plugin_name=search-engine-ping/search-engine-ping.php&slug=search-engine-ping. Each action, such as activate, deactivate, etc., is an API Endpoint that performs specific actions detailed in sections below. 100% clean original files without implemented advertising, viruses or malicious code. When an activation is used, there is one less activation available for other software or computers to use as in a floating license model, and if an activation is deactivated, then that activation can be used by other software or computers. Directions are as follows: http://docs.woocommerce.com/document/template-structure/. Just setup the API Products as usual, and WooCommerce API Manager Product Tabs does the rest, so you don’t need to write the same content a second time into tab metaboxes on the product. In the next screen, add a description and select the WordPress user you would like to generate the key for. https://api.wordpress.org/secret-key/1.1/salt/, Identity and Access Management (IAM) dashboard, Description of keys sent in HTTP(s) API requests, http://docs.woocommerce.com/document/template-structure/, https://docs.woocommerce.com/document/digital-downloadable-product-handling/, Endpoints Not Displayed in My Account Dashboard. The code snippet below is a working copy of the code needed. ), error logs for clues as to what errors are preventing the update process from completing. As mentioned in the Settings section, several different options are available to log API requests and responses by turning those options on in the API Manager settings page. This helps avoid using root keys that have access to all services connected with the AWS account. Below is a list of Action and Filter hooks for WooCommerce API Manager >= 2.0. Purpose: Data returned depends on if the request was authenticated or not. If this file is a WordPress plugin/theme then it needs to be a .zip file. http://dev.toddlahman.com/?wc-api=wc-am-api&wc_am_action=deactivate&instance=p1uOusaNM5ub3&product_id=62912&api_key=448567cf667c299bb706df6fe64ed2b44c7d37ba. If the server is on a shared host, you need to consider upgrading to an account that has a database that can handle more traffic. Simple Products and Simple Subscriptions can still send the old Software Title, however the Product ID (an integer) is faster, and ensures future compatibility. In the previous example the file is a zip file, so the Content-Type was set to application/zip. Paste the User ARN into the Principal field. As of API Manager version 2.0 the Product ID is required to be sent with each API call/API request depending on the API function and request type. The server used in the test is the live server at toddlahman.com, which has a large database of customers, so the test could reflect a real-world result. All items are falls under the GPL. For non WooCommerce API Manager subscribers, the WooCommerce API Manager PHP Library for Plugins and Themes can be purchased on the product page here for $200. Optional key: slug. These items are developed by third-party developers and are distributed by EYEWP.COM. Currently the root account has complete permission to access the bucket and files, but no one else does, not even customers, so we need to give the IAM user bucket level permission. The User Switching plugin is a very useful tool that allows the store owner/manager to virtually login as a user. The second argument in the code block example below is for the product_id. EYEWP.COM is not affiliated or in any way related to third-party developers or trademark owners, including: WordPress, WooCommerce, WooThemes, Yoast, etc. We are happy to help. Edit the php.ini file to at least max_execution_time 30 or greater, but not too much or PHP scripts will take too long to complete: If you are running a Apache proxy, the timeout must be greater than ( > ) the php max_execution_time. max_allowed_packet = 128M – is a MySQL setting and is changed on Linux servers in /etc/my.cnf.