Coder Social home page Coder Social logo

woocommerce-rest-api's Introduction

(Deprecated) WooCommerce REST API

Notice: This plugin is now merged into WooCommerce core, all open issues and PRs will be eventually transfered to WooCommerce core Repo. Please submit all new issues or PRs directly to the core repo.

license Latest Stable Version Build Status Scrutinizer Code Quality

This repository is home to the WooCommerce REST API package.

The stable version of this package is bundled with WooCommerce core releases, but it can also be used as a standalone plugin so bleeding-edge API features can be tested or used by other feature plugins. We do not recommend using this repo as a standalone plugin in production.

Using this package as a plugin

After checking out the code to your wp-content/plugins directory, you'll need to run composer install in the plugin directory (wp-content/plugins/woocommerce-rest-api) to install dependencies and to enable the autoloader. Without performing this step, if you activate the plugin it will simply show an admin notice.

API documentation

Versions

Namespace Status Docs
wc/v4 Development Link
wc/v3 Stable Link
wc/v2 Deprecated - October 2020 Link
wc/v1 Deprecated - April 2019 Link

Note: API Versions are kept around for 2 years after being replaced, and may be removed in the next major version after that date passes.

Using this package in other projects

This package is hosted on Packagist and can be included using composer.json:

"require": {
    "woocommerce/woocommerce-rest-api": "1.0.0"
},

Since multiple versions of this package may be included at the same time, it includes a special package-version autoloader. This dependency is also on Packagist:

  "automattic/jetpack-autoloader": "^1"

And using this autoloader requires the following include in your codebase:

$autoloader = __DIR__ . '/vendor/autoload_packages.php';

If you choose to use your own autoloader, please note you won't be able to determine which version of the package is running since it could use the version in WooCommerce core or your version. The namespaces would conflict. All of our feature plugins and packages use the package autoloader.

Contributing

Please read the WooCommerce contributor guidelines for more information how you can contribute to WooCommerce, and the REST API contribution documentation here.

Within this package, namespaces and endpoint classes are located within the src/RestAPI/ directory. If you need to change the behavior of an endpoint, you can do so in these classes.

Run tests using phpunit in the root of the package. All pull-requests must pass unit tests in order to be accepted.

Translation

For strings located in API endpoints, use woocommerce as your text-domain. These endpoints will be translated in the WooCommerce Core PO/MO files.

woocommerce-rest-api's People

Contributors

andrewminion-luminfire avatar claudiosanches avatar dhruvins avatar jeffstieler avatar kloon avatar mch0lic avatar mikejolley avatar nikhil-webkul avatar noomz avatar obliviousharmony avatar om4csaba avatar peterfabian avatar rodrigoprimo avatar rrennick avatar szamanis avatar vedanshujain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

woocommerce-rest-api's Issues

Not possible to delete meta_data from REST APi

Currently its not possible to delete meta_data from rest api, for example like this:


$update['meta_data'][] = [
    'key' => "my_meta_data",
    'value' => ""
];
print_r($woocommerce->put('orders/727', $update));

'my_meta_data' will still be there. even when I do this to delete all meta_data:

$update['meta_data'] = array();`
print_r($woocommerce->put('orders/727', $update));

Its also not possible.

Make CI tests run & pass

Currently the tests are not running on Travis, but they do succeed locally, so we need to fix this on the CI

Adjust Woocommerce Order Search (OR instead of AND)

I need the adjustment, that one can enter more than only one order-ID into the search and get accordingly several orders.

For example “12002 12003 12004”, so that you get these 3 orders listed.

Does anyone know which line(s) of code must be adjusted, so that the search function uses OR instead of AND? Or ss there a plugin for that?

Many thanks in advance!

Cant update Status with RestAPI

2019-11-04T09:49:58+00:00 CRITICAL Uncaught Error: Call to a member function set_status() on null in /home2/wlnsfzmy/public_html/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-orders-controller.php:185
Stack trace:
#0 /home2/wlnsfzmy/public_html/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-crud-controller.php(238): WC_REST_Orders_Controller->save_object(Object(WP_REST_Request), false)
woocommerce/woocommerce#1 /home2/wlnsfzmy/public_html/wp-includes/rest-api/class-wp-rest-server.php(946): WC_REST_CRUD_Controller->update_item(Object(WP_REST_Request))
woocommerce/woocommerce#2 /home2/wlnsfzmy/public_html/wp-includes/rest-api/class-wp-rest-server.php(329): WP_REST_Server->dispatch(Object(WP_REST_Request))
woocommerce/woocommerce#3 /home2/wlnsfzmy/public_html/wp-includes/rest-api.php(309): WP_REST_Server->serve_request('/wc/v3/orders/2...')
woocommerce/woocommerce#4 /home2/wlnsfzmy/public_html/wp-includes/class-wp-hook.php(286): rest_api_loaded(Object(WP))
woocommerce/woocommerce#5 /home2/wlnsfzmy/public_html/wp-includes/class-wp-hook.php(310): WP_Hook-> in /home2/wlnsfzmy/public_html/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-orders-controller.php in Zeile 185

This error occures every time i try to update the status to completed:

this is my code:

    processedOrders.forEach(function (orderId) {
        var tempOrder =
        {
            id: orderId,
            status: "completed"
        }
        orderState.push(tempOrder)
    })

    var batchData = {
        update: orderState
    }
    console.log(batchData)

    WooCommerce.post("orders/batch", batchData).then((response) => {
        console.log("all orders were updated successfully in woocommerce: " + response)
        res.status(200).send("all orders were updated successfully in woocommerce")
    })
        .catch((err) => {
            console.log("there were orders that could not be updated in woocommerce: " + err)
            res.status(400).send("there were orders that could not be updated in woocommerce: " + err)
        });

Product Image not populated with the REST API

Prerequisites

Creating a product with the REST API doesn't populate the Product Image, only the Product Gallery.

  • I have searched for similar issues in both open and closed tickets and cannot find a duplicate
  • The issue still exists against the latest master branch of WooCommerce on Github (this is not the same version as on WordPress.org!)
  • I have attempted to find the simplest possible steps to reproduce the issue
  • I have included a failing test as a pull request (Optional)

Steps to reproduce the issue

  1. Create/update a product with three images via the REST API to a product
  2. Check the WooCommerce backend in the product view
  3. Notice that all images are in the Product Gallery, the first image is not in the Product Image section.

Problem also reported here for the first time: woocommerce/woocommerce#20148
I followed the documentation here: https://woocommerce.github.io/woocommerce-rest-api-docs/#product-images-properties

Expected/actual behavior

First image in the array shall populate the Product Image. The other images shall populate the Product Gallery.

Isolating the problem

  • This bug happens with only WooCommerce plugin active
  • This bug happens with a default WordPress theme active, or Storefront
  • I can reproduce this bug consistently using the steps above

WordPress Environment

` ### WordPress Environment ###

WordPress address (URL): http://www.staging.soeco.se
Site address (URL): http://www.staging.soeco.se
WC Version: 3.8.1
REST API Version: ✔ 1.0.2
Log Directory Writable: ✔
WP Version: 5.3.2
WP Multisite: –
WP Memory Limit: 256 MB
WP Debug Mode: –
WP Cron: ✔
Language: en_US
External object cache: –

Server Environment

Server Info: Apache
PHP Version: 7.3.13
PHP Post Max Size: 32 MB
PHP Time Limit: 60
PHP Max Input Vars: 1000
cURL Version: 7.29.0
NSS/3.44

SUHOSIN Installed: –
MySQL Version: 5.5.5-10.1.43-MariaDB
Max Upload Size: 32 MB
Default Timezone is UTC: ✔
fsockopen/cURL: ✔
SoapClient: ✔
DOMDocument: ✔
GZip: ✔
Multibyte String: ✔
Remote Post: ✔
Remote Get: ✔

Database

WC Database Version: 3.8.1
WC Database Prefix: wp_
MaxMind GeoIP Database: ✔
Total Database Size: 231.85MB
Database Data Size: 205.28MB
Database Index Size: 26.57MB
wp_woocommerce_sessions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_order_itemmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_comments: Data: 0.02MB + Index: 0.09MB + Engine InnoDB
wp_duplicator_pro_entities: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_duplicator_pro_packages: Data: 0.11MB + Index: 0.02MB + Engine InnoDB
wp_importer_files: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_importer_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_jet_smart_filters_indexer: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_layerslider: Data: 0.14MB + Index: 0.00MB + Engine InnoDB
wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_options: Data: 2.52MB + Index: 0.08MB + Engine InnoDB
wp_postmeta: Data: 166.67MB + Index: 15.06MB + Engine InnoDB
wp_posts: Data: 25.55MB + Index: 7.06MB + Engine InnoDB
wp_po_plugins: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_revslider_css: Data: 0.13MB + Index: 0.00MB + Engine InnoDB
wp_revslider_layer_animations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_navigations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_sliders: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_slides: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_static_slides: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_smush_dir_images: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_termmeta: Data: 0.05MB + Index: 0.03MB + Engine InnoDB
wp_terms: Data: 0.08MB + Index: 0.09MB + Engine InnoDB
wp_term_relationships: Data: 1.52MB + Index: 1.52MB + Engine InnoDB
wp_term_taxonomy: Data: 0.08MB + Index: 0.06MB + Engine InnoDB
wp_usermeta: Data: 0.08MB + Index: 0.03MB + Engine InnoDB
wp_users: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wc_product_meta_lookup: Data: 1.52MB + Index: 1.34MB + Engine InnoDB
wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfBadLeechers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfBlockedCommentLog: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfBlockedIPLog: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfBlocks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfBlocks7: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_wfBlocksAdv: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfConfig: Data: 0.31MB + Index: 0.00MB + Engine InnoDB
wp_wfCrawlers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfFileChanges: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfFileMods: Data: 2.52MB + Index: 0.00MB + Engine InnoDB
wp_wfHits: Data: 0.06MB + Index: 0.05MB + Engine InnoDB
wp_wfHoover: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfIssues: Data: 0.14MB + Index: 0.00MB + Engine InnoDB
wp_wfKnownFileList: Data: 1.52MB + Index: 0.00MB + Engine InnoDB
wp_wfLeechers: Data: 0.38MB + Index: 0.00MB + Engine InnoDB
wp_wfLiveTrafficHuman: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfLockedOut: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfLocs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfLogins: Data: 0.05MB + Index: 0.03MB + Engine InnoDB
wp_wfls_2fa_secrets: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfls_settings: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfNet404s: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfNotifications: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfPendingIssues: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfReverseCache: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfScanners: Data: 0.08MB + Index: 0.00MB + Engine InnoDB
wp_wfSNIPCache: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_wfStatus: Data: 0.13MB + Index: 0.09MB + Engine InnoDB
wp_wfThrottleLog: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfTrafficRates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfVulnScanners: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_termmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wpfm_backup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wpmcleaner: Data: 0.08MB + Index: 0.00MB + Engine InnoDB
wp_wysija_campaign: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_campaign_list: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_custom_field: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_email: Data: 0.05MB + Index: 0.00MB + Engine InnoDB
wp_wysija_email_user_stat: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_email_user_url: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_form: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_list: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_queue: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wysija_url: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_url_mail: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_user: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wysija_user_field: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_user_history: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wysija_user_list: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_yith_wcwl: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_yith_wcwl_lists: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_yoast_seo_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_yoast_seo_meta: Data: 0.05MB + Index: 0.00MB + Engine InnoDB

Security

Secure connection (HTTPS): ❌
Your store is not using HTTPS. Learn more about HTTPS and SSL Certificates.
Hide errors from visitors: ✔

Active Plugins (14)

Soeco Pro Plugin: by Brainstorm Force – 2.2.4
Astra Hooks: by Brainstorm Force – 1.0.1
Astra Widgets: by Brainstorm Force – 1.2.1
Custom Fonts: by Brainstorm Force – 1.2.0
Elementor Pro: by Elementor.com – 2.8.3
Elementor: by Elementor.com – 2.8.3
JetElements For Elementor: by Crocoblock – 2.2.2
JetSmartFilters: by Crocoblock – 1.6.1
JetProductGallery For Elementor: by Crocoblock – 1.1.0 – Not tested with the active version of WooCommerce
WooCommerce Brands: by WooCommerce – 1.6.9 – Not tested with the active version of WooCommerce
WooCommerce: by Automattic – 3.8.1
Yoast SEO: by Team Yoast – 12.8
Smush Pro: by WPMU DEV – 3.4.1
WPMU DEV Dashboard: by WPMU DEV – 4.7.5

Inactive Plugins (3)

Advanced Custom Fields: by Elliot Condon – 5.8.7
Advanced Custom Fields: Image Crop Add-on: by Anders Thorborg – 1.4.12
Advanced Custom Fields PRO: by Elliot Condon – 5.5.10

Must Use Plugins (1)

Elementor Safe Mode: by Elementor.com – 1.0.0

Settings

API Enabled: ✔
Force SSL: –
Currency: SEK (kr)
Currency Position: right_space
Thousand Separator: .
Decimal Separator: ,
Number of Decimals: 2
Taxonomies: Product Types: external (external)
grouped (grouped)
simple (simple)
variable (variable)

Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
exclude-from-search (exclude-from-search)
featured (featured)
outofstock (outofstock)
rated-1 (rated-1)
rated-2 (rated-2)
rated-3 (rated-3)
rated-4 (rated-4)
rated-5 (rated-5)

Connected to WooCommerce.com: –

WC Pages

Shop base: woocommerce/woocommerce#4 - /produkter-i-lager/
Cart: woocommerce/woocommerce#5 - /varukorg/
Checkout: woocommerce/woocommerce#6 - /kassan/
My account: ❌ Page visibility should be public
Terms and conditions: #56911 - /kontakt/

Theme

Name: Astra Child
Version: 1.0.0
Author URL: https://www.effektivahemsidor.se
Child Theme: ✔
Parent Theme Name: Astra
Parent Theme Version: 2.2.1
Parent Theme Author URL: https://wpastra.com/about/
WooCommerce Support: ✔

Templates

Overrides: –

Action Scheduler

Complete: 2
Oldest: 2019-12-14 10:31:01 +0100
Newest: 2020-01-07 15:39:06 +0100

Pending: 0
Oldest: –
Newest: –

Canceled: 0
Oldest: –
Newest: –

In-progress: 0
Oldest: –
Newest: –

Failed: 0
Oldest: –
Newest: –

`

Getting empty responses on getProducts (but result varies when tweaking per_page parameter)

Bug description
When setting per_page to 100 or 99 on the GET products api call, we are retrieving an empty body response on the last page. However when per_page is set to 50 or 75 it works as expected. Because of this issue we cannot reliable retrieve the largest amounts of products per page.

Also interesting to note, in both instances the second to last page gives a "prev" and "next" link in their response header. And on the last page only a "prev" link. (like expected)

To Reproduce
Here are sample requests we make:
Succesfull with per_page=50: https://pastebin.com/4NWc3UJV
Unsuccesfull with per_page=100: https://pastebin.com/yWVfazTv

Expected behavior
Retrieve the remaining 93 products on the last page when per_page count is set to 100 (and page= 3)

Isolating the problem:

  • [ x] I don't have control over the woocommerce installation and therefore cannot easily disable plugins.
  • [x ] I can reproduce this bug consistently using the steps above.

WordPress Environment

``` { "environment":{ "home_url":"https:\/\/www.loftdeur.nl", "site_url":"https:\/\/www.loftdeur.nl", "version":"3.8.1", "log_directory":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/uploads\/wc-logs\/", "log_directory_writable":true, "wp_version":"5.3.2", "wp_multisite":false, "wp_memory_limit":536870912, "wp_debug_mode":false, "wp_cron":true, "language":"nl_NL", "external_object_cache":null, "server_info":"Apache\/2", "php_version":"7.2.21", "php_post_max_size":67108864, "php_max_execution_time":60, "php_max_input_vars":1000, "curl_version":"7.29.0, NSS\/3.44", "suhosin_installed":false, "max_upload_size":67108864, "mysql_version":"5.5.5", "mysql_version_string":"5.5.5-10.1.41-MariaDB", "default_timezone":"UTC", "fsockopen_or_curl_enabled":true, "soapclient_enabled":true, "domdocument_enabled":true, "gzip_enabled":true, "mbstring_enabled":true, "remote_post_successful":true, "remote_post_response":"200", "remote_get_successful":true, "remote_get_response":"200" }, "database":{ "wc_database_version":"3.8.1", "database_prefix":"wp_", "maxmind_geoip_database":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/uploads\/GeoLite2-Country.mmdb", "database_tables":{ "woocommerce":{ "wp_woocommerce_sessions":{ "data":"5.02", "index":"0.09", "engine":"InnoDB" }, "wp_woocommerce_api_keys":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_woocommerce_attribute_taxonomies":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_woocommerce_downloadable_product_permissions":{ "data":"0.16", "index":"0.28", "engine":"InnoDB" }, "wp_woocommerce_order_items":{ "data":"8.52", "index":"3.52", "engine":"InnoDB" }, "wp_woocommerce_order_itemmeta":{ "data":"68.61", "index":"49.16", "engine":"InnoDB" }, "wp_woocommerce_tax_rates":{ "data":"0.02", "index":"0.06", "engine":"InnoDB" }, "wp_woocommerce_tax_rate_locations":{ "data":"0.02", "index":"0.05", "engine":"InnoDB" }, "wp_woocommerce_shipping_zones":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_woocommerce_shipping_zone_locations":{ "data":"0.02", "index":"0.05", "engine":"InnoDB" }, "wp_woocommerce_shipping_zone_methods":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_woocommerce_payment_tokens":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_woocommerce_payment_tokenmeta":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_woocommerce_log":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" } }, "other":{ "wp_adtribes_my_conversions":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_commentmeta":{ "data":"0.28", "index":"0.31", "engine":"InnoDB" }, "wp_comments":{ "data":"45.58", "index":"29.09", "engine":"InnoDB" }, "wp_EWD_OTP_Customers":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_EWD_OTP_Custom_Fields":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_EWD_OTP_Fields_Meta":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_EWD_OTP_Orders":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_EWD_OTP_Order_Statuses":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_EWD_OTP_Sales_Reps":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_idealcheckout":{ "data":"1.52", "index":"0.00", "engine":"InnoDB" }, "wp_links":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_ms_snippets":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_mts_wp_reviews":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_options":{ "data":"7.50", "index":"0.61", "engine":"InnoDB" }, "wp_pay_options":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_pay_option_subs":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_pay_transactions":{ "data":"8.52", "index":"0.31", "engine":"InnoDB" }, "wp_postmeta":{ "data":"280.80", "index":"139.34", "engine":"InnoDB" }, "wp_posts":{ "data":"24.55", "index":"8.06", "engine":"InnoDB" }, "wp_redirection_404":{ "data":"2.02", "index":"0.86", "engine":"InnoDB" }, "wp_redirection_groups":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_redirection_items":{ "data":"0.06", "index":"0.09", "engine":"InnoDB" }, "wp_redirection_logs":{ "data":"1.02", "index":"0.36", "engine":"InnoDB" }, "wp_sl_setting":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_sl_tag":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_smush_dir_images":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_snippets":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_termmeta":{ "data":"0.06", "index":"0.03", "engine":"InnoDB" }, "wp_terms":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_term_relationships":{ "data":"0.11", "index":"0.08", "engine":"InnoDB" }, "wp_term_taxonomy":{ "data":"0.08", "index":"0.03", "engine":"InnoDB" }, "wp_tm_taskmeta":{ "data":"0.06", "index":"0.03", "engine":"InnoDB" }, "wp_tm_tasks":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_usermeta":{ "data":"15.55", "index":"11.03", "engine":"InnoDB" }, "wp_users":{ "data":"1.52", "index":"0.48", "engine":"InnoDB" }, "wp_wcpdf_credit_note_number":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wcpdf_invoice_number":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wcpdf_packing_slip_number":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wc_download_log":{ "data":"0.02", "index":"0.03", "engine":"InnoDB" }, "wp_wc_product_meta_lookup":{ "data":"0.33", "index":"0.72", "engine":"InnoDB" }, "wp_wc_tax_rate_classes":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_wc_webhooks":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_wfBlockedIPLog":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfBlocks7":{ "data":"0.02", "index":"0.05", "engine":"InnoDB" }, "wp_wfConfig":{ "data":"1.44", "index":"0.00", "engine":"InnoDB" }, "wp_wfCrawlers":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfFileChanges":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfFileMods":{ "data":"10.52", "index":"0.00", "engine":"InnoDB" }, "wp_wfHits":{ "data":"1.02", "index":"2.14", "engine":"InnoDB" }, "wp_wfHoover":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_wfIssues":{ "data":"0.02", "index":"0.06", "engine":"InnoDB" }, "wp_wfKnownFileList":{ "data":"4.52", "index":"0.00", "engine":"InnoDB" }, "wp_wfLiveTrafficHuman":{ "data":"0.19", "index":"0.13", "engine":"InnoDB" }, "wp_wfLocs":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfLogins":{ "data":"0.20", "index":"0.06", "engine":"InnoDB" }, "wp_wfls_2fa_secrets":{ "data":"0.02", "index":"0.02", "engine":"InnoDB" }, "wp_wfls_settings":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfNotifications":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfPendingIssues":{ "data":"0.02", "index":"0.06", "engine":"InnoDB" }, "wp_wfReverseCache":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wfSNIPCache":{ "data":"0.02", "index":"0.05", "engine":"InnoDB" }, "wp_wfStatus":{ "data":"0.13", "index":"0.09", "engine":"InnoDB" }, "wp_wfTrafficRates":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_woocommerce_gpf_google_taxonomy":{ "data":"1.52", "index":"0.00", "engine":"InnoDB" }, "wp_woocommerce_multisafepay":{ "data":"0.11", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_categories":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_category_maps":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_circles":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_maps":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_polygon":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_polylines":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_wpgmza_rectangles":{ "data":"0.02", "index":"0.00", "engine":"InnoDB" }, "wp_yoast_seo_links":{ "data":"0.14", "index":"0.06", "engine":"InnoDB" }, "wp_yoast_seo_meta":{ "data":"4.52", "index":"0.00", "engine":"InnoDB" } } }, "database_size":{ "data":497.3199999999991, "index":247.72000000000017 } }, "active_plugins":[ { "plugin":"woocommerce-nl\/woocommerce-nl.php", "name":"WooCommerce (nl)", "version":"1.1.7", "version_latest":"1.1.7", "url":"http:\/\/www.pronamic.eu\/plugins\/woocommerce-nl\/", "author_name":"Pronamic", "author_url":"http:\/\/www.pronamic.nl\/", "network_activated":false }, { "plugin":"WooCommerce-3.2.0\/multisafepay.php", "name":"Multisafepay", "version":"3.2.0", "version_latest":"3.2.0", "url":"http:\/\/www.multisafepay.com", "author_name":"Multisafepay", "author_url":"http:\/\/www.multisafepay.com", "network_activated":false }, { "plugin":"ac-addon-acf\/ac-addon-acf.php", "name":"Admin Columns Pro - Advanced Custom Fi 2000 elds (ACF)", "version":"2.5.5", "version_latest":"2.5.5", "url":"https:\/\/www.admincolumns.com", "author_name":"Admin Columns", "author_url":"https:\/\/www.admincolumns.com", "network_activated":false }, { "plugin":"ac-addon-woocommerce\/ac-addon-woocommerce.php", "name":"Admin Columns Pro - WooCommerce", "version":"3.3.8", "version_latest":"3.3.8", "url":"https:\/\/www.admincolumns.com", "author_name":"Admin Columns", "author_url":"https:\/\/www.admincolumns.com", "network_activated":false }, { "plugin":"admin-columns-pro\/admin-columns-pro.php", "name":"Admin Columns Pro", "version":"4.7.3", "version_latest":"4.7.3", "url":"https:\/\/www.admincolumns.com", "author_name":"AdminColumns.com", "author_url":"https:\/\/www.admincolumns.com", "network_activated":false }, { "plugin":"antispam-bee\/antispam_bee.php", "name":"Antispam Bee", "version":"2.9.1", "version_latest":"2.9.1", "url":"https:\/\/nl.wordpress.org\/plugins\/antispam-bee\/", "author_name":"pluginkollektiv", "author_url":"https:\/\/pluginkollektiv.org", "network_activated":false }, { "plugin":"code-snippets\/code-snippets.php", "name":"Codefragmenten", "version":"2.13.3", "version_latest":"2.13.3", "url":"https:\/\/github.com\/sheabunge\/code-snippets", "author_name":"Shea Bunge", "author_url":"https:\/\/sheabunge.com", "network_activated":false }, { "plugin":"contact-form-7\/wp-contact-form-7.php", "name":"Contact Form 7", "version":"5.1.6", "version_latest":"5.1.6", "url":"https:\/\/contactform7.com\/", "author_name":"Takayuki Miyoshi", "author_url":"https:\/\/ideasilo.wordpress.com\/", "network_activated":false }, { "plugin":"custom-css-js\/custom-css-js.php", "name":"Simple Custom CSS and JS", "version":"3.28", "version_latest":"3.28", "url":"https:\/\/wordpress.org\/plugins\/custom-css-js\/", "author_name":"SilkyPress.com", "author_url":"https:\/\/www.silkypress.com", "network_activated":false }, { "plugin":"custom-favicon\/custom-favicon.php", "name":"Custom Favicon", "version":"1.0.3", "version_latest":"1.0.3", "url":"http:\/\/www.dreamsonline.net\/wordpress-plugins\/custom-favicon\/", "author_name":"Harish Chouhan", "author_url":"http:\/\/www.dreamsonline.net\/wordpress-themes\/", "network_activated":false }, { "plugin":"easyads\/easyads.php", "name":"EasyAds for WooCommerce", "version":"0.2.1", "version_latest":"0.2.1", "url":"https:\/\/www.easyads.eu\/", "author_name":"EasyAds", "author_url":"https:\/\/www.easyads.eu\/", "network_activated":false }, { "plugin":"email-address-encoder\/email-address-encoder.php", "name":"Email Address Encoder", "version":"1.0.19", "version_latest":"1.0.19", "url":"https:\/\/encoder.till.im\/", "author_name":"Till Kr\u00fcss", "author_url":"https:\/\/till.im\/", "network_activated":false }, { "plugin":"enhanced-e-commerce-for-woocommerce-store\/enhanced-ecommerce-google-analytics.php", "name":"Enhanced E-commerce for Woocommerce store", "version":"2.3.0", "version_latest":"2.3.0", "url":"https:\/\/www.tatvic.com\/tatvic-labs\/woocommerce-extension\/", "author_name":"Tatvic", "author_url":"http:\/\/www.tatvic.com", "network_activated":false }, { "plugin":"envira-gallery\/envira-gallery.php", "name":"Envira Gallery", "version":"1.8.8", "version_latest":"1.8.8", "url":"http:\/\/enviragallery.com", "author_name":"Envira Gallery Team", "author_url":"http:\/\/enviragallery.com", "network_activated":false }, { "plugin":"facebook-for-woocommerce\/facebook-for-woocommerce.php", "name":"Facebook for WooCommerce", "version":"1.9.15", "version_latest":"1.9.15", "url":"https:\/\/github.com\/facebookincubator\/facebook-for-woocommerce\/", "author_name":"Facebook", "author_url":"https:\/\/www.facebook.com\/", "network_activated":false }, { "plugin":"header-and-footer-scripts\/shfs.php", "name":"Header and Footer Scripts", "version":"2.1.1", "version_latest":"2.1.1", "url":"http:\/\/digitalliberation.org\/plugins\/header-and-footer-scripts\/?utm_source=wphfs_plugin_uri", "author_name":"Digital Liberation", "author_url":"http:\/\/digitalliberation.org\/?utm_source=wphfs_author_uri", "network_activated":false }, { "plugin":"loco-translate\/loco.php", "name":"Loco Translate", "version":"2.3.1", "version_latest":"2.3.1", "url":"https:\/\/nl.wordpress.org\/plugins\/loco-translate\/", "author_name":"Tim Whitlock", "author_url":"https:\/\/localise.biz\/wordpress\/plugin", "network_activated":false }, { "plugin":"pctags-pinterest-conversion-tag-premium\/pinterest-conversion-tag.php", "name":"Pctags - Pinterest Conversion Tags (Premium)", "version":"1.0.5", "version_latest":"1.0.5", "url":"", "author_name":"Pagup", "author_url":"https:\/\/pagup.com\/", "network_activated":false }, { "plugin":"poeditor\/poeditor.php", "name":"POEditor", "version":"0.9.10", "version_latest":"0.9.10", "url":"https:\/\/poeditor.com\/", "author_name":"POEditor", "author_url":"https:\/\/poeditor.com\/", "network_activated":false }, { "plugin":"postman-smtp\/postman-smtp.php", "name":"Postman SMTP", "version":"1.7.2", "version_latest":"1.7.2", "url":"https:\/\/wordpress.org\/plugins\/postman-smtp\/", "author_name":"Jason Hendriks", "author_url":"http:\/\/www.codingmonkey.ca", "network_activated":false }, { "plugin":"postmark-approved-wordpress-plugin\/postmark.php", "name":"Postmark (Official)", "version":"1.11.6", "version_latest":"1.11.6", "url":"https:\/\/postmarkapp.com\/", "author_name":"Andrew Yates & Matt Gibbs", "author_url":"", "network_activated":false }, { "plugin":"product-gtin-ean-upc-isbn-for-woocommerce\/product-gtin-ean-upc-isbn-for-woocommerce.php", "name":"Product GTIN (EAN, UPC, ISBN) for WooCommerce", "version":"1.0.8", "version_latest":"1.0.8", "url":"", "author_name":"Emanuela Castorina", "author_url":"https:\/\/emanuelacastorina.com\/", "network_activated":false }, { "plugin":"redirection\/redirection.php", "name":"Redirection", "version":"4.6.2", "version_latest":"4.6.2", "url":"https:\/\/redirection.me\/", "author_name":"John Godley", "author_url":"https:\/\/johngodley.com", "network_activated":false }, { "plugin":"remove-query-strings-from-static-resources\/remove-query-strings.php", "name":"Remove Query Strings From Static Resources", "version":"1.4", "version_latest":"1.4", "url":"https:\/\/www.speedupmywebsite.com\/", "author_name":"Speed Up My Website, Your WP Expert", "author_url":"https:\/\/www.speedupmywebsite.com\/", "network_activated":false }, { "plugin":"sendcloud-shipping\/sendcloud-shipping.php", "name":"SendCloud | Smart Shipping Service", "version":"1.1.1", "version_latest":"1.1.1", "url":"http:\/\/sendcloud.sc", "author_name":"SendCloud B.V.", "author_url":"http:\/\/sendcloud.sc", "network_activated":false }, { "plugin":"simple-custom-css\/simple-custom-css.php", "name":"Simple Custom CSS", "version":"4.0.3", "version_latest":"4.0.3", "url":"http:\/\/johnregan3.github.io\/simple-custom-css", "author_name":"John Regan, Danny Van Kooten", "author_url":"http:\/\/johnregan3.me", "network_activated":false }, { "plugin":"uni-woo-custom-product-options\/uni-cpo.php", "name":"Uni CPO - WooCommerce Options and Price Calculation Formulas", "version":"3.1.7", "version_latest":"4.6.11", "url":"http:\/\/moomoo.agency\/demo\/cpo\/", "author_name":"MooMoo Studio Team", "author_url":"http:\/\/moomoo.agency", "network_activated":false }, { "plugin":"wc-multiple-email-recipients\/wc-multiple-email-recipients.php", "name":"WC Multiple Email Recipients", "version":"1.2.5", "version_latest":"1.2.5", "url":"http:\/\/conschneider.de\/plugin-woocommerce-multiple-email-recipients\/", "author_name":"Con Schneider", "author_url":"http:\/\/conschneider.de\/", "network_activated":false }, { "plugin":"woo-product-feed-pro\/woocommerce-sea.php", "name":"Product Feed PRO for WooCommerce", "version":"7.1.7", "version_latest":"7.1.7", "url":"https:\/\/www.adtribes.io\/support\/?utm_source=wpadmin&utm_medium=plugin&utm_campaign=woosea_product_feed_pro", "author_name":"AdTribes.io", "author_url":"https:\/\/www.adtribes.io", "network_activated":false }, { "plugin":"woocommerce-checkout-field-editor-pro\/woocommerce-checkout-field-editor-pro.php", "name":"WooCommerce Checkout Field Editor Pro", "version":"2.7.7", "version_latest":"2.7.7", "url":"http:\/\/www.themehigh.com\/product\/woocommerce-checkout-field-editor-pro\/", "author_name":"ThemeHiGH", "author_url":"http:\/\/www.themehigh.com", "network_activated":false }, { "plugin":"woocommerce-custom-tabs-pro\/woocommerce-custom-tabs-pro.php", "name":"Woocommerce Custom Tabs PRO", "version" 2000:"1.0.26", "version_latest":"1.0.26", "url":"http:\/\/webshoplogic.com\/custom-tabs-for-woocommerce\/", "author_name":"WebshopLogic", "author_url":"http:\/\/webshoplogic.com\/", "network_activated":false }, { "plugin":"woocommerce-customer-order-csv-export\/woocommerce-customer-order-csv-export.php", "name":"WooCommerce Customer\/Order CSV Export", "version":"4.3.5", "version_latest":"4.3.5", "url":"http:\/\/www.woocommerce.com\/products\/ordercustomer-csv-export\/", "author_name":"SkyVerge", "author_url":"http:\/\/www.woocommerce.com", "network_activated":false }, { "plugin":"woocommerce-dynamic-pricing\/woocommerce-dynamic-pricing.php", "name":"WooCommerce Dynamic Pricing", "version":"3.1.4", "version_latest":"3.1.4", "url":"https:\/\/woocommerce.com\/products\/dynamic-pricing\/", "author_name":"Lucas Stark", "author_url":"http:\/\/lucasstark.com", "network_activated":false }, { "plugin":"woocommerce-google-adwords-conversion-tracking\/wc-adwords-conversion-tracking.php", "name":"Woocommerce Adwords Conversion Tracking", "version":"1.0.1", "version_latest":"1.0.1", "url":"http:\/\/victorfalcon.es\/wc-adwords-conversion-tracking", "author_name":"V\u00edctor Falc\u00f3n", "author_url":"http:\/\/victorfalcon.es", "network_activated":false }, { "plugin":"woocommerce-google-dynamic-retargeting-tag\/wgdr.php", "name":"WooCommerce Google Ads Dynamic Remarketing", "version":"1.7.14", "version_latest":"1.7.14", "url":"https:\/\/wordpress.org\/plugins\/woocommerce-google-dynamic-retargeting-tag\/", "author_name":"Wolf+B\u00e4r Agency", "author_url":"https:\/\/wolfundbaer.ch", "network_activated":false }, { "plugin":"woocommerce-name-your-price\/woocommerce-name-your-price.php", "name":"WooCommerce Name Your Price", "version":"2.7.1", "version_latest":"2.7.1", "url":"http:\/\/www.woocommerce.com\/products\/name-your-price\/", "author_name":"Kathy Darling", "author_url":"http:\/\/kathyisawesome.com", "network_activated":false }, { "plugin":"woocommerce-order-status-manager\/woocommerce-order-status-manager.php", "name":"WooCommerce Order Status Manager", "version":"1.9.1", "version_latest":"1.9.1", "url":"http:\/\/www.woocommerce.com\/products\/woocommerce-order-status-manager\/", "author_name":"SkyVerge", "author_url":"http:\/\/www.woocommerce.com", "network_activated":false }, { "plugin":"woocommerce-pdf-invoices-packing-slips\/woocommerce-pdf-invoices-packingslips.php", "name":"WooCommerce PDF Invoices & Packing Slips", "version":"2.4.3", "version_latest":"2.4.3", "url":"http:\/\/www.wpovernight.com", "author_name":"Ewout Fernhout", "author_url":"http:\/\/www.wpovernight.com", "network_activated":false }, { "plugin":"woocommerce-pdf-ips-pro\/woocommerce-pdf-ips-pro.php", "name":"WooCommerce PDF Invoices & Packing Slips Professional", "version":"2.4.0", "version_latest":"2.4.0", "url":"http:\/\/www.wpovernight.com", "author_name":"Ewout Fernhout", "author_url":"http:\/\/www.wpovernight.com", "network_activated":false }, { "plugin":"woocommerce-pdf-ips-templates\/woocommerce-pdf-ips-templates.php", "name":"WooCommerce PDF Invoices & Packing Slips Premium Templates", "version":"2.4.1", "version_latest":"2.4.1", "url":"http:\/\/www.wpovernight.com", "author_name":"Ewout Fernhout", "author_url":"http:\/\/www.wpovernight.com", "network_activated":false }, { "plugin":"woocommerce-pre-orders\/woocommerce-pre-orders.php", "name":"WooCommerce Pre-Orders", "version":"1.5.20", "version_latest":"1.5.20", "url":"https:\/\/woocommerce.com\/products\/woocommerce-pre-orders\/", "author_name":"WooCommerce", "author_url":"https:\/\/woocommerce.com", "network_activated":false }, { "plugin":"woocommerce-pretty-emails\/emailplus.php", "name":"WooCommerce Pretty Emails", "version":"1.8.6", "version_latest":"1.8.6", "url":"", "author_name":"MB Cr\u00e9ation", "author_url":"http:\/\/www.mbcreation.net", "network_activated":false }, { "plugin":"woocommerce-radio-buttons\/functions.php", "name":"Woo Radio Buttons", "version":"3.0.0", "version_latest":"3.0.0", "url":"http:\/\/designloud.com\/downloads\/woo-radio-buttons-3.0.zip", "author_name":"DesignLoud", "author_url":"http:\/\/designloud.com", "network_activated":false }, { "plugin":"woocommerce-sequential-order-numbers-pro\/woocommerce-sequential-order-numbers.php", "name":"WooCommerce Sequential Order Numbers Pro", "version":"1.12.0", "version_latest":"1.12.0", "url":"http:\/\/www.woocommerce.com\/products\/sequential-order-numbers-pro\/", "author_name":"SkyVerge", "author_url":"http:\/\/www.woocommerce.com", "network_activated":false }, { "plugin":"woocommerce\/woocommerce.php", "name":"WooCommerce", "version":"3.8.1", "version_latest":"3.8.1", "url":"https:\/\/woocommerce.com\/", "author_name":"Automattic", "author_url":"https:\/\/woocommerce.com", "network_activated":false }, { "plugin":"wordfence\/wordfence.php", "name":"Wordfence Security", "version":"7.4.3", "version_latest":"7.4.3", "url":"http:\/\/www.wordfence.com\/", "author_name":"Wordfence", "author_url":"http:\/\/www.wordfence.com\/", "network_activated":true }, { "plugin":"wordpress-https\/wordpress-https.php", "name":"WordPress HTTPS", "version":"3.4.0", "version_latest":"3.4.0", "url":"http:\/\/mvied.com\/projects\/wordpress-https\/", "author_name":"Mike Ems", "author_url":"http:\/\/mvied.com\/", "network_activated":false }, { "plugin":"wordpress-seo\/wp-seo.php", "name":"Yoast SEO", "version":"12.8", "version_latest":"12.8", "url":"https:\/\/yoa.st\/1uj", "author_name":"Team Yoast", "author_url":"https:\/\/yoa.st\/1uk", "network_activated":false }, { "plugin":"wp-asset-clean-up-pro\/wpacu.php", "name":"Asset CleanUp Pro: Page Speed Booster", "version":"1.1.5.7", "version_latest":"1.1.5.7", "url":"https:\/\/gabelivan.com\/items\/wp-asset-cleanup-pro\/", "author_name":"Gabriel Livan", "author_url":"http:\/\/gabelivan.com\/", "network_activated":false }, { "plugin":"wp-awesome-faq\/index.php", "name":"WP Awesome FAQ", "version":"4.1.4", "version_latest":"4.1.4", "url":"https:\/\/jeweltheme.com\/product\/wordpress-faq-plugin\/", "author_name":"Liton Arefin", "author_url":"https:\/\/jeweltheme.com\/shop\/easy-gutenberg-blocks\/", "network_activated":false }, { "plugin":"wp-google-maps\/wpGoogleMaps.php", "name":"WP Google Maps", "version":"8.0.14", "version_latest":"8.0.14", "url":"https:\/\/www.wpgmaps.com", "author_name":"WP Google Maps", "author_url":"https:\/\/www.wpgmaps.com", "network_activated":false }, { "plugin":"wp-optimize-premium\/wp-optimize.php", "name":"WP-Optimize Premium - Clean, Compress, Cache", "version":"3.0.15", "version_latest":"3.0.15", "url":"https:\/\/getwpo.com", "author_name":"David Anderson, Ruhani Rabin, Team Updraft", "author_url":"https:\/\/updraftplus.com", "network_activated":false }, { "plugin":"wp-smush-pro\/wp-smush.php", "name":"Smush Pro", "version":"3.4.1", "version_latest":"3.4.1", "url":"http:\/\/premium.wpmudev.org\/projects\/wp-smush-pro\/", "author_name":"WPMU DEV", "author_url":"https:\/\/premium.wpmudev.org\/", "network_activated":false }, { "plugin":"wpmudev-updates\/update-notifications.php", "name":"WPMU DEV Dashboard", "version":"4.7.5", "version_latest":"4.7.5", "url":"https:\/\/premium.wpmudev.org\/project\/wpmu-dev-dashboard\/", "author_name":"WPMU DEV", "author_url":"https:\/\/premium.wpmudev.org\/", "network_activated":true }, { "plugin":"wpovernight-sidekick\/wpovernight-sidekick.php", "name":"WP Overnight Sidekick", "version":"2.2.0", "version_latest":"2.2.0", "url":"http:\/\/wpovernight.com\/", "author_name":"Jeremiah Prummer, Ewout Fernhout, Michael Kluver", "author_url":"http:\/\/wpovernight.com\/", "network_activated":false } ], "inactive_plugins":[ { "plugin":"customer-reviews-woocommerce\/ivole.php", "name":"Customer Reviews for WooCommerce", "version":"3.93", "version_latest":"3.93", "url":"https:\/\/wordpress.org\/plugins\/customer-reviews-woocommerce\/", "author_name":"ivole", "author_url":"https:\/\/profiles.wordpress.org\/ivole", "network_activated":false }, { "plugin":"fullwidth-templates\/fullwidth-page-template.php", "name":"Fullwidth Page Templates", "version":"1.0.3", "version_latest":"1.0.3", "url":"https:\/\/www.brainstormforce.com", "author_name":"Brainstorm Force", "author_url":"https:\/\/www.brainstormforce.com", "network_activated":false }, { "plugin":"pagination-styler-for-woocommerce\/pagination-styler.php", "name":"Pagination Styler for WooCommerce", "version":"3.5.1.1", "version_latest":"3.5.1.1", "url":"https:\/\/wordpress.org\ 19a0 /plugins\/pagination-styler-for-woocommerce\/?utm_source=free_plugin&utm_medium=plugins&utm_campaign=pagination", "author_name":"BeRocket", "author_url":"https:\/\/berocket.com?utm_source=free_plugin&utm_medium=plugins&utm_campaign=pagination", "network_activated":false }, { "plugin":"query-monitor\/query-monitor.php", "name":"Query Monitor", "version":"3.5.2", "version_latest":"3.5.2", "url":"https:\/\/querymonitor.com\/", "author_name":"John Blackbourn", "author_url":"https:\/\/querymonitor.com\/", "network_activated":false }, { "plugin":"woocommerce-paynl-payment-methods\/woocommerce-payment-paynl.php", "name":"Woocommerce Pay.nl Payment Methods", "version":"3.4", "version_latest":"3.4", "url":"https:\/\/wordpress.org\/plugins\/woocommerce-paynl-payment-methods\/", "author_name":"Pay.nl", "author_url":"http:\/\/www.pay.nl", "network_activated":false }, { "plugin":"wc-reminder-emails\/wc-reminder-emails.php", "name":"WooCommerce Smart Reminder Emails", "version":"1.2.0", "version_latest":"1.2.0", "url":"http:\/\/www.wpovernight.com", "author_name":"Ewout Fernhout", "author_url":"http:\/\/www.wpovernight.com", "network_activated":false }, { "plugin":"js_composer\/js_composer.php", "name":"WPBakery Page Builder", "version":"6.1", "version_latest":"6.1", "url":"http:\/\/wpbakery.com", "author_name":"Michael M - WPBakery.com", "author_url":"http:\/\/wpbakery.com", "network_activated":false } ], "dropins_mu_plugins":{ "dropins":[ { "plugin":"advanced-cache.php", "name":"advanced-cache.php" } ], "mu_plugins":[ { "plugin":"wpacu-plugins-filter.php", "name":"Asset CleanUp Pro: Plugin Filtering", "version":"1.0", "url":"https:\/\/gabelivan.com\/items\/wp-asset-cleanup-pro\/", "author_name":"Gabriel Livan", "author_url":"https:\/\/codeable.io\/developers\/gabriel-livan\/?ref=d3TOr" } ] }, "theme":{ "name":"Maximize", "version":"1.3.12", "version_latest":"1.3.12", "author_url":"http:\/\/www.woothemes.com", "is_child_theme":false, "has_woocommerce_support":true, "has_woocommerce_file":false, "has_outdated_templates":true, "overrides":[ { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/admin-cancelled-order.php", "version":"2.3.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/admin-failed-order.php", "version":"2.5.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/admin-new-order.php", "version":"2.0.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-completed-order.php", "version":"1.6.4", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-invoice.php", "version":"2.2.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-new-account.php", "version":"1.6.4", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-note.php", "version":"1.6.4", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-on-hold-order.php", "version":"", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-processing-order.php", "version":"1.6.4", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-refunded-order.php", "version":"2.4.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/customer-reset-password.php", "version":"2.0.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/email-addresses.php", "version":"2.2.0", "core_version":"3.5.4" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/email-customer-details.php", "version":"2.5.0", "core_version":"2.5.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/email-footer.php", "version":"2.0.0", "core_version":"3.7.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/email-header.php", "version":"1.0", "core_version":"2.4.0" }, { "file":"\/home\/admin\/domains\/loftdeur.nl\/public_html\/wp-content\/plugins\/woocommerce-pretty-emails\/emails\/email-order-items.php", "version":"2.1.2", "core_version":"3.7.0" } ], "parent_name":"", "parent_version":"", "parent_version_latest":"", "parent_author_url":"" }, "settings":{ "api_enabled":true, "force_ssl":false, "currency":"EUR", "currency_symbol":"€", "currency_position":"left", "thousand_separator":".", "decimal_separator":",", "number_of_decimals":2, "geolocation_enabled":false, "taxonomies":{ "external":"external", "grouped":"grouped", "simple":"simple", "variable":"variable" }, "product_visibility_terms":{ "exclude-from-catalog":"exclude-from-catalog", "exclude-from-search":"exclude-from-search", "featured":"featured", "outofstock":"outofstock", "rated-1":"rated-1", "rated-2":"rated-2", "rated-3":"rated-3", "rated-4":"rated-4", "rated-5":"rated-5" }, "woocommerce_com_connected":"no" }, "security":{ "secure_connection":true, "hide_errors":true }, "pages":[ { "page_name":"Winkelbasis", "page_id":"3041", "page_set":true, "page_exists":true, "page_visible":true, "shortcode":"", "shortcode_required":false, "shortcode_present":false }, { "page_name":"Winkelmand", "page_id":"3043", "page_set":true, "page_exists":true, "page_visible":true, "shortcode":"[woocommerce_cart]", "shortcode_required":true, "shortcode_present":true }, { "page_name":"Afrekenen", "page_id":"3045", "page_set":true, "page_exists":true, "page_visible":true, "shortcode":"[woocommerce_checkout]", "shortcode_required":true, "shortcode_present":true }, { "page_name":"Mijn account", "page_id":"3047", "page_set":true, "page_exists":true, "page_visible":true, "shortcode":"[woocommerce_my_account]", "shortcode_required":true, "shortcode_present":true }, { "page_name":"Algemene voorwaarden", "page_id":"4215", "page_set":true, "page_exists":true, "page_visible":true, "shortcode":"", "shortcode_required":false, "shortcode_present":fa 6 lse } ] }```

API - Attribute exists check and return ID

Is your feature request related to a problem? Please describe.
The API is not returning the Attribute ID if it existing already. So when you are importing a product via the API and add attributes, you need to know the exact attribute ID.

Describe the solution you'd like
The API should check and return if an attribute is existing or has been created while importing products before.

What we did is first modify the /includes/wc-attribute-function.php and added 2 lines to return the existing attribute_id:

$attribute_id = $wpdb->get_var("select attribute_id from {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_name='" . $slug . "'");
return new WP_Error( 'invalid_product_attribute_slug_already_exists', sprintf( __( 'Slug "%s" is already in use. Change it, please.', 'woocommerce' ), $slug ), array( 'status' => 400, 'resource_id' => $attribute_id ) );

Bildschirmfoto 2019-07-19 um 08 55 52

Then, because the API function does not return the "resource_id" we added the following lines in 251:

// Checks for errors.
if ( is_wp_error( $id ) ) {
	if(isset($id->error_data['invalid_product_attribute_slug_already_exists'])) {
		return new WP_Error( 'woocommerce_rest_cannot_create', $id->get_error_message(), array( 'status' => 400, 'resource_id' => $id->error_data['invalid_product_attribute_slug_already_exists']['resource_id']) );	
	} else {
		return new WP_Error( 'woocommerce_rest_cannot_create', $id->get_error_message(), array( 'status' => 400 ) );	
	}
}

Bildschirmfoto 2019-07-19 um 08 58 40

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

List all attribute terms (API)

when using this api
/wp-json/wc/v3/products/attributes/1/terms

It show correct data,
but when I change to '1' to any other :
/wp-json/wc/v3/products/attributes/2/terms

it still show 'attributeid:1' data, not 'attributeid:2' data that i want. I try using nonexistent attribute_id, still it shows 'attributeid:1' data. why is that?

edit:
I found the problem, If I remove this part from line 794 (wc-rest-terms-controller.php):

		// Check if taxonomy is defined.
		// Prevents check for attribute taxonomy more than one time for each query.
		if ( '' !== $this->taxonomy ) {
			return $this->taxonomy;
		}

it works OK. I think we need to add filter here, so this feature can be turned off manually.

Add endpoint to request total product count for the parameters provided

On woo-mobile, we have a need to show the total count of products so we don't have to download all products just to give the user a total count. This endpoint should support all the same properties as the products list endpoint so we can query for a count of products by various filters such as type, status, category, on_sale...etc.

API: /products parameter "on_sale" doesn't retrieve variations on sale

Describe the bug
"on sale" paramter from [https://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-products](products list endpoint), doesn't show variable products that are on sale

To Reproduce
Steps to reproduce the behavior:

  1. Create a variable product, add an attribute and a variation.
  2. Set variation price and sale price to lower than regular price.
  3. Using PHP library, query products list endpoint and include "on_sale" parameter as true. The product you just added will not be returned, even though it is on sale.

Expected behavior
on_sale parameter should show variable products when they are on sale.

Isolating the problem (mark completed items with an [x]):

  • I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active.
  • This bug happens with a default WordPress theme active, or Storefront.
  • I can reproduce this bug consistently using the steps above.

WordPress Environment

WooCommerce version:   3.6.2
Log directory writable:   /vagrant/html/fineyellow/wp-content/uploads/wc-logs/
WordPress version:   5.0.4 - There is a newer version of WordPress available (5.2.2)
WordPress multisite:  
WordPress memory limit:   1 GB
WordPress debug mode:    
WordPress cron:    
Language:   en_GB
External object cache:  

Wrong logic of Woocommerce API order

Describe the bug

Looks like Woocommerce API not correctly processing orders number argument - it got Wordpress ID instead expected ORDER_NUMBER

To Reproduce
Find the order's number in the admin area and call API

curl https://xxx.com/wp-json/wc/v3/orders/25229 -u xxx:xxx

Next - find the ID (from Wordpress Admin Edit link for example) and call method with

curl https://xxx.com/wp-json/wc/v3/orders/156100 -u xxx:xxx

Data FOUND

Expected behavior
Based on the doc and the ELEMENTARY LOGIC
http://woocommerce.github.io/woocommerce-rest-api-docs/?python#retrieve-an-order
ID - should be an ORDER NUMBER, not id of the WordPress record.
The Wordpress ID is hidden anywhere in the admin area and not known by the store manager

WordPress Environment

``` ### WordPress Environment ###

WordPress address (URL): https://northstarmodels.com
Site address (URL): https://northstarmodels.com
WC Version: 3.8.0
REST API Version: ✔ 1.0.2
Log Directory Writable: ✔
WP Version: 5.3
WP Multisite: –
WP Memory Limit: 512 MB
WP Debug Mode: –
WP Cron: ✔
Language: en_US
External object cache: –

Server Environment

Server Info: nginx/1.10.1
PHP Version: 5.6.40-1~dotdeb+7.1 - We recommend using PHP version 7.2 or above for greater performance and security. How to update your PHP version
PHP Post Max Size: 8 MB
PHP Time Limit: 300
PHP Max Input Vars: 1000
cURL Version: 7.26.0
OpenSSL/1.0.1t

SUHOSIN Installed: –
MySQL Version: 5.7.22-log
Max Upload Size: 8 MB
Default Timezone is UTC: ✔
fsockopen/cURL: ✔
SoapClient: ✔
DOMDocument: ✔
GZip: ✔
Multibyte String: ✔
Remote Post: ✔
Remote Get: ✔

Database

WC Database Version: 3.8.0
WC Database Prefix: nsms_
Total Database Size: 1291.68MB
Database Data Size: 1071.36MB
Database Index Size: 220.32MB
nsms_woocommerce_sessions: Data: 0.20MB + Index: 0.02MB + Engine InnoDB
nsms_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
nsms_woocommerce_order_items: Data: 6.52MB + Index: 1.52MB + Engine InnoDB
nsms_woocommerce_order_itemmeta: Data: 29.55MB + Index: 23.06MB + Engine InnoDB
nsms_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
nsms_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
nsms_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
nsms_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_aelia_dismissed_messages: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_aff_affiliates: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_aff_affiliates_users: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_aff_hits: Data: 5.52MB + Index: 17.13MB + Engine InnoDB
nsms_aff_referrals: Data: 0.39MB + Index: 0.19MB + Engine InnoDB
nsms_aff_robots: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_aff_uris: Data: 0.06MB + Index: 0.06MB + Engine InnoDB
nsms_aff_user_agents: Data: 0.05MB + Index: 0.02MB + Engine InnoDB
nsms_amazon_accounts: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_btg: Data: 0.34MB + Index: 0.18MB + Engine MyISAM
nsms_amazon_categories: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_feeds: Data: 14.95MB + Index: 0.01MB + Engine MyISAM
nsms_amazon_feed_templates: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_feed_tpl_data: Data: 0.25MB + Index: 0.05MB + Engine MyISAM
nsms_amazon_feed_tpl_values: Data: 0.26MB + Index: 0.04MB + Engine MyISAM
nsms_amazon_jobs: Data: 0.14MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_listings: Data: 1.39MB + Index: 0.35MB + Engine MyISAM
nsms_amazon_log: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_markets: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_orders: Data: 12.89MB + Index: 0.06MB + Engine MyISAM
nsms_amazon_payment: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_profiles: Data: 0.03MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_reports: Data: 5.60MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_shipping: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_amazon_stock_log: Data: 9.52MB + Index: 0.00MB + Engine InnoDB
nsms_commentmeta: Data: 1.52MB + Index: 0.80MB + Engine InnoDB
nsms_comments: Data: 23.55MB + Index: 19.09MB + Engine InnoDB
nsms_cp_project_users: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_accounts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_auctions: Data: 62.23MB + Index: 0.48MB + Engine InnoDB
nsms_ebay_categories: Data: 2.52MB + Index: 0.97MB + Engine InnoDB
nsms_ebay_jobs: Data: 1.52MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_log: Data: 215.06MB + Index: 2.50MB + Engine InnoDB
nsms_ebay_messages: Data: 8.52MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_orders: Data: 155.56MB + Index: 0.27MB + Engine InnoDB
nsms_ebay_payment: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_profiles: Data: 0.13MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_shipping: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_ebay_sites: Data: 0.01MB + Index: 0.00MB + Engine MyISAM
nsms_ebay_store_categories: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_ebay_transactions: Data: 202.52MB + Index: 0.78MB + Engine InnoDB
nsms_failed_jobs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_gCF: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_groups_capability: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_groups_group: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_groups_group_capability: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_groups_user_capability: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_groups_user_group: Data: 0.38MB + Index: 0.22MB + Engine InnoDB
nsms_icl_content_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_core_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_currencies: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_icl_flags: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_languages: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
nsms_icl_languages_currencies: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_languages_translations: Data: 0.10MB + Index: 0.11MB + Engine MyISAM
nsms_icl_locale_map: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_message_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_node: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_reminders: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_strings: Data: 0.24MB + Index: 0.16MB + Engine MyISAM
nsms_icl_string_positions: Data: 0.31MB + Index: 0.07MB + Engine MyISAM
nsms_icl_string_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_string_translations: Data: 0.01MB + Index: 0.01MB + Engine MyISAM
nsms_icl_translate: Data: 0.01MB + Index: 0.00MB + Engine MyISAM
nsms_icl_translate_job: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_icl_translations: Data: 0.82MB + Index: 1.11MB + Engine MyISAM
nsms_icl_translation_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_litespeed_img_optm: Data: 0.02MB + Index: 0.09MB + Engine InnoDB
nsms_litespeed_optimizer: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_options: Data: 6.48MB + Index: 0.48MB + Engine InnoDB
nsms_postmeta: Data: 165.70MB + Index: 95.22MB + Engine InnoDB
nsms_posts: Data: 18.55MB + Index: 8.06MB + Engine InnoDB
nsms_psninja_amdd: Data: 3.30MB + Index: 1.32MB + Engine MyISAM
nsms_psninja_amdd_cache: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
nsms_psninja_urls: Data: 0.06MB + Index: 0.00MB + Engine InnoDB
nsms_pushworld_tasks: Data: 54.56MB + Index: 14.56MB + Engine InnoDB
nsms_pv_commission: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_queue: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_termmeta: Data: 0.14MB + Index: 0.16MB + Engine InnoDB
nsms_terms: Data: 0.11MB + Index: 0.13MB + Engine InnoDB
nsms_term_relationships: Data: 1.52MB + Index: 1.52MB + Engine InnoDB
nsms_term_taxonomy: Data: 0.13MB + Index: 0.14MB + Engine InnoDB
nsms_usermeta: Data: 27.55MB + Index: 20.06MB + Engine InnoDB
nsms_users: Data: 2.52MB + Index: 1.13MB + Engine InnoDB
nsms_vtprd_purchase_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_vtprd_purchase_log_product: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_vtprd_purchase_log_product_rule: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wcmp_products_map: Data: 0.19MB + Index: 0.00MB + Engine InnoDB
nsms_wcmp_vendor_orders: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wc_admin_notes: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wc_customer_lookup: Data: 2.52MB + Index: 1.83MB + Engine InnoDB
nsms_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_wc_order_coupon_lookup: Data: 0.06MB + Index: 0.06MB + Engine InnoDB
nsms_wc_order_product_lookup: Data: 3.52MB + Index: 1.83MB + Engine InnoDB
nsms_wc_order_stats: Data: 1.52MB + Index: 0.63MB + Engine InnoDB
nsms_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_wc_product_meta_lookup: Data: 0.23MB + Index: 0.42MB + Engine InnoDB
nsms_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wfBlockedIPLog: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfBlocks7: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
nsms_wfConfig: Data: 2.52MB + Index: 0.00MB + Engine InnoDB
nsms_wfCrawlers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfFileChanges: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfFileMods: Data: 6.52MB + Index: 0.00MB + Engine InnoDB
nsms_wfHits: Data: 1.39MB + Index: 0.20MB + Engine InnoDB
nsms_wfHoover: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wfIssues: Data: 0.09MB + Index: 0.06MB + Engine InnoDB
nsms_wfKnownFileList: Data: 2.52MB + Index: 0.00MB + Engine InnoDB
nsms_wfLiveTrafficHuman: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wfLocs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfLogins: Data: 0.16MB + Index: 0.06MB + Engine InnoDB
nsms_wfls_2fa_secrets: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
nsms_wfls_settings: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfNotifications: Data: 0.06MB + Index: 0.00MB + Engine InnoDB
nsms_wfPendingIssues: Data: 0.09MB + Index: 0.06MB + Engine InnoDB
nsms_wfReverseCache: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wfSNIPCache: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
nsms_wfStatus: Data: 0.20MB + Index: 0.13MB + Engine InnoDB
nsms_wfTrafficRates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_woobe_history: Data: 0.27MB + Index: 0.36MB + Engine InnoDB
nsms_woobe_history_bulk: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
nsms_woochimp_scheduled_events: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_woocommerce_waitlist: Data: 0.02MB + Index: 0.01MB + Engine MyISAM
nsms_woo_sr_cart_items: Data: 1.52MB + Index: 0.63MB + Engine InnoDB
nsms_woo_sr_orders: Data: 1.52MB + Index: 0.45MB + Engine InnoDB
nsms_woo_sr_order_items: Data: 1.52MB + Index: 0.50MB + Engine InnoDB
nsms_wpam_actions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_affiliates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_affiliates_fields: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_creatives: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_events: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_impressions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_messages: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_paypal_logs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_tracking_tokens: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_tracking_tokens_purchase_logs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wpam_transactions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wprc_cached_requests: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wprc_extensions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wprc_extension_types: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wprc_repositories: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wprc_repositories_relationships: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_wsmea_conditional_payment_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_yith_vendors_commissions: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_yith_vendors_commissions_notes: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
nsms_yith_ywpar_points_log: Data: 0.11MB + Index: 0.00MB + Engine InnoDB

Security

Secure connection (HTTPS): ✔
Hide errors from visitors: ✔

Active Plugins (54)

Ocean Extra: by OceanWP – 1.5.19
WooCommerce Blacklister: by Aelia (Diego Zanella) – 0.8.6.150612 – Not tested with the active version of WooCommerce
WP Affiliate Manager: by wp.insider
wpaffiliatemgr – 2.6.9

AfterShip - WooCommerce Tracking: by AfterShip – 1.9.12 – Not tested with the active version of WooCommerce
Akismet Anti-Spam: by Automattic – 4.1.3
BAW Login/Logout menu: by Juliobox – 1.3.3
Payment Gateway Based Fees and Discounts for WooCommerce: by Tyche Softwares – 2.6 – Not tested with the active version of WooCommerce
Sepa Direct Debit: by Joern Bungartz – 1.6.8 – Not tested with the active version of WooCommerce
Custom Order Status for WooCommerce: by Tyche Softwares – 1.4.8 – Not tested with the active version of WooCommerce
Delete Me: by Clinton Caldwell – 2.8
Documents Tab WooCommerce: by Adrian Dimitrov – 1.0 – Not tested with the active version of WooCommerce
Envato Market: by Envato – 2.0.3
EU Cookie Law: by Alex Moss
Marco Milesi – 3.1

Facebook Comments Plugin: by talspotim – 2.3.6
GDPR: by Trew Knowledge – 2.1.0
MailChimp Goal for WordPress: by Nate Ranson – 1.2
Imsanity: by Exactly WWW – 2.4.3
Social Login: by OneAll Social Login – 5.5.1
Parallelize: by SEO Jerusalem – 1.0
PayPal Multiple Emails for WooCommerce: by Jeff Sherk – 1.2.0 – Not tested with the active version of WooCommerce
PayPal for WooCommerce: by Angell EYE – 1.5.7 – Not tested with the active version of WooCommerce
Product Enquiry for WooCommerce: by WisdmLabs – 2.6.3 – Not tested with the active version of WooCommerce
Product Sales Report for WooCommerce: by Potent Plugins – 1.4.8 – Not tested with the active version of WooCommerce
PageSpeed Ninja: by PageSpeed Ninja – 0.9.39
Push World: by Push World – 2.0.2
CM Commerce for WooCommerce: by Campaign Monitor – 1.5.5 – Not tested with the active version of WooCommerce
Search By SKU - for Woocommerce: by Matthew Lawson – 0.6.1 – Not tested with the active version of WooCommerce
ShortPixel Image Optimizer: by ShortPixel – 4.14.6
Stop Spammers: by Bryan Hadaway – 2019.1
UpToLike Social Share Buttons: by Uptolike Team – 1.5.9
Aelia Foundation Classes for WooCommerce: by Aelia – 2.0.8.190822 – Not tested with the active version of WooCommerce
Product Customer List for WooCommerce: by Kokomo – 2.9.2 – Not tested with the active version of WooCommerce
Woocommerce Export Products to XLS: by Spyros Vlachopoulos – 0.6.0 – Not tested with the active version of WooCommerce
WooCommerce Western Union Gateway: by Alex Spataru – 1.1.1 – Not tested with the active version of WooCommerce
WooChimp: by RightPress – 2.2.6 – Not tested with the active version of WooCommerce
WooCommerce Admin: by WooCommerce – 0.22.0 – Not tested with the active version of WooCommerce
WooCommerce Bulk Editor: by realmag777 – 2.0.5.1 – Not tested with the active version of WooCommerce
WooCommerce Bulk Order Form: by Ewout Fernhout
Varun Sridharan
Jeremiah Prummer – 3.1.3 – Not tested with the active version of WooCommerce

WooCommerce Print Invoice & Delivery Note: by Tyche Softwares – 4.5.3 – Not tested with the active version of WooCommerce
WooCommerce Dynamic Gallery PRO: by A3 Revolution – 2.4.1 – Not tested with the active version of WooCommerce
WooCommerce Dynamic Pricing: by Lucas Stark – 3.1.3 – Not tested with the active version of WooCommerce
WooCommerce Google Analytics Integration: by WooCommerce – 1.4.14 – Not tested with the active version of WooCommerce
WooCommerce Sequential Order Numbers: by SkyVerge – 1.9.2 – Not tested with the active version of WooCommerce
WooCommerce Subscribe to Newsletter: by WooCommerce – 2.3.6 – Not tested with the active version of WooCommerce
WooWaitlist: by WPCream.com – 4.0.3 – Not tested with the active version of WooCommerce
WooCommerce: by Automattic – 3.8.0
Wordfence Security: by Wordfence – 7.4.1
WP-FFPC: by Peter Molnar – 1.11.2
wp-jquery-lightbox: by Ulf Benjaminsson – 1.4.8.1
WP-Lister Pro for Amazon: by WP Lab – 1.0.5
WP-Lister Pro for eBay: by WP Lab – 2.2.3
WP Mail SMTP: by WPForms – 1.7.1
WP-Sweep: by Lester 'GaMerZ' Chan – 1.1.1
YITH WooCommerce Best Sellers: by YITH – 1.1.14 – Not tested with the active version of WooCommerce

Inactive Plugins (25)

Conditional Payment Methods for WooCommerce: by Rakhitha Nimesh – 1.0 – Not tested with the active version of WooCommerce
Contact Form 7: by Takayuki Miyoshi – 5.1.5
Contact Form 7 WooCommerce Order Dropdown Field: by Codeboxr Team – 1.0.4 – Not tested with the active version of WooCommerce
Copy Or Move Comments: by biztechc – 4.0.3
Ecwid Ecommerce Shopping Cart: by Ecwid Ecommerce – 6.8.8
Fancy Product Preview for WooCommerce: by James Kemp – 1.2.1 – Not tested with the active version of WooCommerce
Google Address Autocomplete for Woocommerce: by MB Création – 1.10 – Not tested with the active version of WooCommerce
Grid/List View for WooCommerce: by BeRocket – 1.1.0.3 – Not tested with the active version of WooCommerce
Groups: by itthinx – 2.8.0
Hello Dolly: by Matt Mullenweg – 1.7.2
NextMove Lite - Thank You Page for WooCommerce: by XLPlugins – 2.11.0 – Not tested with the active version of WooCommerce
P3 (Plugin Performance Profiler): by GoDaddy.com – 1.5.3.9
PDF Catalog: by ovologics – 1.1.18 – Not tested with the active version of WooCommerce
Product CSV Import Export (BASIC): by WebToffee – 1.7.0 – Not tested with the active version of WooCommerce
PW Advanced Woo Reporting - Free Version: by Proword – 2.1 – Not tested with the active version of WooCommerce
Sales Report for WooCommerce: by BeRocket – 3.5.1.2 – Not tested with the active version of WooCommerce
Saphali - create price list in Excel: by Saphali – 1.0.4
Search Everything: by Sovrn
zemanta – 8.1.9

SFS Toxip IP range Spammer Addon: by Keith P. Graham – 1.0
User Role Editor: by Vladimir Garagulya – 4.52.1
WooCommerce - Store Exporter: by Visser Labs – 2.3.1 – Not tested with the active version of WooCommerce
WooCommerce Cart Tab: by jameskoster – 1.1.2 – Not tested with the active version of WooCommerce
WooCommerce Order Search: by Chetan Khandla – 1.1.0 – Not tested with the active version of WooCommerce
WooCommerce Product Feed: by WebAppick – 3.1.53 – Not tested with the active version of WooCommerce
WOOF - WooCommerce Products Filter: by realmag777 – 1.2.3 – Not tested with the active version of WooCommerce

Dropin Plugins (1)

advanced-cache.php: advanced-cache.php

Settings

API Enabled: ✔
Force SSL: ✔
Currency: EUR (€)
Currency Position: right_space
Thousand Separator: ,
Decimal Separator: .
Number of Decimals: 2
Taxonomies: Product Types: simple (simple)
wbs_bundle (wbs_bundle)

Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
exclude-from-search (exclude-from-search)
featured (featured)
outofstock (outofstock)
rated-3 (rated-3)
rated-4 (rated-4)
rated-5 (rated-5)

Connected to WooCommerce.com: –

WC Pages

Shop base: woocommerce/woocommerce#4 - /shop/
Cart: woocommerce/woocommerce#5 - /cart/
Checkout: woocommerce/woocommerce#6 - /checkout/
My account: woocommerce/woocommerce#8 - /my-account/
Terms and conditions: woocommerce/woocommerce#1108 - /payment/

Theme

Name: OceanWP
Version: 1.7.3
Author URL: https://oceanwp.org/about-me/
Child Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme
WooCommerce Support: ✔

Templates

Overrides: oceanwp/woocommerce/cart/mini-cart.php
oceanwp/woocommerce/content-single-product.php
oceanwp/woocommerce/loop/loop-start.php
oceanwp/woocommerce/single-product/title.php

Action Scheduler

Complete: 4,389
Oldest: 2019-10-27 10:41:50 +0200
Newest: 2019-11-27 09:59:09 +0200

Pending: 2
Oldest: 2019-11-27 10:55:45 +0200
Newest: 2019-11-27 10:59:12 +0200

Canceled: 0
Oldest: –
Newest: –

In-progress: 0
Oldest: –
Newest: –

Failed: 19
Oldest: 2019-05-31 07:26:37 +0300
Newest: 2019-06-26 08:02:36 +0300

`

</details>

Add notes and balance per customer in admin and REST API

Is your feature request related to a problem? Please describe.
I'm always frustrated when I have to use third-party buggy plugins to integrate WooCommerce with the CRMs I create in C#.

Most of the user-cases involve accessing customer notes and balance which is not available in WooCommerce out of the box.

Describe the solution you'd like

Two new fields in Customer properties REST API object:

string notes
decimal balance

Describe alternatives you've considered
Using third-party plugins that do not have good or any integration with the REST API.

Getting Tag by Name as well as ID

I was wondering

If this is a feature? and how it works.

Then if it's not is that something that can be Considered to be added?

My Reasoning for this.

So in my application for instance I have main "Categories" but instead of using a

Category -> Sub Cat -> Sub cat

Kind of approach I used Tags as the Main so:

Tags -> Category - > Sub cat.

Now I use those tags in "Flash Sale's" Or Notification's to Pass threw Custom Product list's to build Temporary Shop's of sort. So for me it's Not the thing best having to add a INT to a push Notification I'd much rather prefer working with the Name of the Tag.

[feature request] way to access woocommerce rest api internally...

Please add a way to access all rest api method without requiring http request like using 'rest api php wrapper'.

Because woocommerce built-in function is not as comprehensive and as complete as rest api. Sometimes we need to make new function just to do what rest api can already do.

Using 'WP_REST_Request' sometimes causes error like issue#18

Woocommerce api add to cart

Hi everyone!
I am looking for the way I can add to cart via Woo API, I didn't find it from woocommerce api doc . Probably there is not thing in there so can supporter or someone know the way to get it?
Thanks!

Add option to sort product variations by menu_order field

in woo-mobile, we would like to sort the product variations according to the menu_order.

There is an option in wp-admin to change the sorting of variations and this will need to be reflected in the app as well. But when testing with multiple pages of Product Variations, where a variation in a later page has a lower menu_order, the sorting keeps changing in the app. Currently when trying to pass menu_order in the GET Product variations API results in:

{
    "error": "rest_invalid_param",
    "message": "Invalid parameter(s): orderby"
}

It would be nice to provide the option to pass menu_order in the API request

Products Controller: images property type should be array not object

The REST API v1 defines the "images" property with a type of object (which is incorrect).
The REST API v2 defines the "images" property with a type of array (correct).
The REST API v3 defines the "images" property with a type of object (incorrect).

A product can have multiple images, so the type should be array.

Can this be fixed in V4 so that the type is correctly defined as an array?

I did a quick audit of all type: object definitions in the V3 controllers and this property is the only one that I could see that is incorrect.

Thank you.

[API] Get Customer has totally different attributes then before

Endpoint : https://shop/wp-json/wc/v4/customers?search=first_name

I receive the following model:

[  
{  
  "id":x,
  "user_id":1,
  "username":"NicoJuicy",
  "name":"Nico Sap",
  "email":"email",
  "country":"BE",
  "city":"some-villa",
  "state":"",
  "postcode":"number-zipcode",
  "date_registered":"2016-05-31T00:45:02",
  "date_last_active":"-0001-11-30T00:00:00",
  "orders_count":2,
  "total_spend":0,
  "avg_order_value":0,
  "date_last_order":"2017-12-05 22:09:15",
  "date_registered_gmt":"2016-05-30T23:45:02",
  "date_last_active_gmt":"-0001-11-30T00:00:00",
  "_links":{  
     "customer":[  
        {  
           "href":"https:\/\/www.shop\/wp-json\/wc\/v4\/customers\/1"
        }
     ]
  }
}]

Which is extremely weird. I also can't navigate to /wp-json/wc/v4/customers/1

v2 end v3 endpoints give the expected model ( with first_name and last_name).

I'm on version 3.7 and wanted to use v4 endpoint, because i had results when searching for a "guest" name.

I didn't have that match on v2/v3.

Is it possible to advise me on what endpoint i should lookup a guest account based on first_name and last_name?

Use-case: looking up orders based on first_name, last_name and email, when a client sends me an email ( can be from another mail).

[WC REST v3] Order - Line items properties should contain primary(first) product image

When consuming the order rest api, it would be clear that we should get concise details of line items included in the order. But currently, we don't get the product image src. It should give a primary image url of the product.

Primary Image src should be included in Order - Line items properties of order rest api. It would save calling the separate product rest api for just getting the primary product image.

Alternatively, resp api consumer need to call a separate product api for just getting the primary image.

[Orders] $request param mis-usage

Could someone please explain to me how does this work ?

protected function prepare_object_for_database( $request, $creating = false ) {
$id = isset( $request['id'] ) ? absint( $request['id'] ) : 0;
$order = new WC_Order( $id );
$schema = $this->get_item_schema();
$data_keys = array_keys( array_filter( $schema['properties'], array( $this, 'filter_writable_props' ) ) );
// Handle all writable props.
foreach ( $data_keys as $key ) {
$value = $request[ $key ];
if ( ! is_null( $value ) ) {
switch ( $key ) {
case 'coupon_lines':
case 'status':
// Change should be done later so transitions have new data.
break;
case 'billing':
case 'shipping':
$this->update_address( $order, $value, $key );
break;
case 'line_items':
case 'shipping_lines':
case 'fee_lines':
if ( is_array( $value ) ) {
foreach ( $value as $item ) {
if ( is_array( $item ) ) {
if ( $this->item_is_null( $item ) || ( isset( $item['quantity'] ) && 0 === $item['quantity'] ) ) {
$order->remove_item( $item['id'] );
} else {
$this->set_item( $order, $key, $item );
}
}
}
}
break;
case 'meta_data':
if ( is_array( $value ) ) {
foreach ( $value as $meta ) {
$order->update_meta_data( $meta['key'], $meta['value'], isset( $meta['id'] ) ? $meta['id'] : '' );
}
}
break;
default:
if ( is_callable( array( $order, "set_{$key}" ) ) ) {
$order->{"set_{$key}"}( $value );
}
break;
}
}
}

image

The above snapshot is triggered via a postman request.

! HOWEVER, when sending this request via the woocommerce nodejs api (which sends the request body as i do from postman) it somehow works.

L.E. a bit of context in case it is not clear what's happening. In the above method (prepare_object_for_database) The $request param is marked as WP_REST_Request type (which indeed it is), but it is being treated if it were the decoded body of the $request. In V4 this was changed.

Add reviewer_id and gravatar_URL to product review response

Over in woo-mobile, we have a need for the following fields to be added to the product review response. These fields are available when the post comment is fetched (which is what we have to do as a workaround currently). Here are the fields we are using in the comment response:

  • author.ID
  • author.avatar_URL

product_id being mandatory when PUT'ing via REST.

Describe the bug
Can't seem to update order lines via REST unless a product id is supplied. I don't believe it was always like this, and the docs at http://woocommerce.github.io/woocommerce-rest-api-docs/#order-line-items-properties does not mention it being mandatory.

If I PUT this to /wp-json/wc/v3/orders/1545?dp=2:

{
    "line_items": [
        {
            "id": 287,
            "subtotal": "52.00"
        }
    ]
}

I get an HTTP 400 back:

{
    "code": "woocommerce_rest_required_product_reference",
    "message": "Product ID or SKU is required.",
    "data": {
        "status": 400
    }
}

Expected behavior
I expect being able to update existing order lines without supplying the product id. And in fact, I would expect to be able to create new order lines without a product id as well.

Isolating the problem (mark completed items with an [x]):

  • [ x ] I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active.
  • [ x ] This bug happens with a default WordPress theme active, or Storefront.
  • [ x ] I can reproduce this bug consistently using the steps above.

Rest API response - unexpected characters in JSON response

Calling REST Api for refunds eg: example.com/wp-json/wc/v3/orders/31936/refunds returns a JSON response containing invalid characters.

We did not change anything on our backend that is calling the woocommerce REST api but we did update the woocommerce plugin to the latest version: 3.7.0

See screenshot:
response

Remove read-only from customer role in REST API

Is your feature request related to a problem? Please describe.
I'm always frustrated when I have to create a customer using the REST API and then having to change its role as the WC one is read-only.

Describe the solution you'd like
Remove read-only from Customer-> role in the REST API

Describe alternatives you've considered
For now, I have to either modify the database to change the customer's role or use the Wordpress's API to do so.

Alternatively, the role can be changed using the WC Admin page and I wonder why it's read-only on the API!

Idea: Add debug mode that returns query generated for request in headers

Is your feature request related to a problem? Please describe.

Parsing the code to figure out what query is generated for a request is possible but not always easy. For debugging purposes, it would be useful if REST responses could (via option/constant etc) could return the generated query in a header on request.

Describe the solution you'd like

One possible mechanism for implementing this would be to:

  • define a constant in wp-config.php (i.e. WC_REST_DEBUG) or have a filter (probably best option) for turning on debug mode.
  • When debug mode is on, use $wpdb->last_query to get the generated query fulfilling a request and return that on a header, maybe something like X-WC-Debug-Query. That header can then be used to see what the actual query was used for the results.

Describe alternatives you've considered

  • dumping $wpdb->query temporarily directly in the code and getting it in the (broken) response.

Critical Bug class-wc-rest-orders-controller.php:185 since Update

Describe the bug
Hello since some update my error log is full of this errors

2019-11-04T06:54:11+00:00 CRITICAL Uncaught Error: Call to a member function set_status() on null in /home/wp/disk/wordpress/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-orders-controller.php:185
Stack trace:
#0 /home/wp/disk/wordpress/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-crud-controller.php(238): WC_REST_Orders_Controller->save_object(Object(WP_REST_Request), false)
woocommerce/woocommerce#1 /home/wp/disk/wordpress/wp-includes/rest-api/class-wp-rest-server.php(946): WC_REST_CRUD_Controller->update_item(Object(WP_REST_Request))
woocommerce/woocommerce#2 /home/wp/disk/wordpress/wp-includes/rest-api/class-wp-rest-server.php(329): WP_REST_Server->dispatch(Object(WP_REST_Request))
woocommerce/woocommerce#3 /home/wp/disk/wordpress/wp-includes/rest-api.php(309): WP_REST_Server->serve_request('/wc/v3/orders/9...')
woocommerce/woocommerce#4 /home/wp/disk/wordpress/wp-includes/class-wp-hook.php(286): rest_api_loaded(Object(WP))
woocommerce/woocommerce#5 /home/wp/disk/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array)

in /home/wp/disk/wordpress/wp-content/plugins/woocommerce/packages/woocommerce-rest-api/src/Controllers/Version3/class-wc-rest-orders-controller.php in Zeile 185

WordPress Environment

```

WordPress Umgebung

WordPress-Adresse (URL): |   | https://www.breathe-organics.com
Website-Adresse (URL): |   | https://www.breathe-organics.com
WooCommerce-Version: |   | 3.8.0
WooCommerce REST API-Paket: |   | 1.0.2 /home/wp/disk/wordpress/wp-content/plugins/woocommerce/packages/woocommerce-rest-api
Log-Verzeichnis beschreibbar: |   | /home/wp/disk/wordpress/wp-content/uploads/wc-logs/
WordPress-Version: |   | 5.2.4
WordPress Multisite: |   | –
WordPress Speicherlimit: |   | 512 MB
WordPress Debug-Modus: |   |  
WordPress Cron: |   |  
Sprache: |   | de_DE
Externer Objekt-Cache: |   | –

</details>

Product variations Attributes not saved if Attribute name in Arabic

I'm trying to create Product variations for specific Attribute and this Attribute Name in arabic, but this attribute not saved in Product variation.
steps to reproduce this issue
1- create new product over api with "type": "variable" and assign Attribute to product (arabic letters).
2- add variation to this product,
3- variation will be add with 0 attributes.

PHP warnings when accessing "wp shell"

This is the output when I access wp shell:

PHP Warning:  Invalid argument supplied for foreach() in /var/www/woo/wp-includes/rest-api/endpoints/class-wp-rest-controller.php on line 287
Warning: Invalid argument supplied for foreach() in /var/www/woo/wp-includes/rest-api/endpoints/class-wp-rest-controller.php on line 287
PHP Warning:  Invalid argument supplied for foreach() in /var/www/woo/wp-includes/rest-api/endpoints/class-wp-rest-controller.php on line 287
Warning: Invalid argument supplied for foreach() in /var/www/woo/wp-includes/rest-api/endpoints/class-wp-rest-controller.php on line 287

Maybe we are loading the REST API too late?

ERROR on abstract-wc-rest-crud-controller.php:358

352:        public function get_items( $request ) {
353:            $query_args    = $this->prepare_objects_query( $request );
354:            $query_results = $this->get_objects( $query_args );
355:    
356:            $objects = array();
357:            foreach ( $query_results['objects'] as $object ) {
358:                if ( ! wc_rest_check_post_permissions( $this->post_type, 'read', $object->get_id() ) ) {
359:                    continue;
360:                }
361:    
362: 

the $object on line 357 should be validated first. If not sometimes it will show error when $object is not the value we expected.

Error: Call to a member function get_id() on boolean (line 358)

Product Attribute API duplication

When creating global attribute via API, The API doesnt check wheter current name is already exist, currently it just create another duplicate name if the name already exist.

Products - date_created_gmt is potentially not observed

We've been waiting for woocommerce/wc-api-dev#104 to be ready for a while so we can do a particular task for a customer.

We're not entirely sure if date_created_gmt is observed correctly.

We have a simple create product call like this

image

Right now, when we are in GMT (both sites are set to Europe/London, the servers are UTC), we can pass date_created_gmt as 4pm (for example) and the product has a publish date of 4pm.

If I simulate BST (GMT+1) in WordPress

image

The product will have a publish date of 4pm +1h = 5pm, although we are using the date_created_gmt param which should not add an hour for us. The docs say

he date the product was created, as GMT.

The docs still reflect date_created as being read only. Is date_created_gmt still read only?

image

Product Paging API Bug - WC v3.7.1

Describe the bug
Sending a GET request to <storeUrl>/wp-json/wc/v3/products?page=1&per_page=20 correctly returns the first 20 products. However, changing the page url parameter to any page value, returns the same data set in the result: <storeUrl>/wp-json/wc/v3/products?page=2&per_page=20 returns the SAME 20 products that page 1 returned.

Notes:

  • The page size correctly changes the number of results in the set, but the page value does not paginate the result set.
  • Using WooCommerce version 3.7.1 and WordPress version 5.2.4
  • This is a client's integration so I do not have control over upgrading their site
  • This seems to be environment specific, as I am making these calls with multiple WooCommerce stores and the paging mechanism works correctly for some stores.
  • The result headers X-WP-Total and X-WP-TotalPages are 1500 and 75 respectively, so I know there are more products to return, and the client has verified this as well.
  • Specifying a page value of an astronomical number (50000000) still returns the first page set of data

To Reproduce
Steps to reproduce the behavior:

  1. Send HTTPS GET to <storeUrl>/wp-json/wc/v3/products?page=1&per_page=20
  2. Note the IDs of products returned
  3. Send HTTPS GET to <storeUrl>/wp-json/wc/v3/products?page=2&per_page=20
  4. Note that the 20 IDs of products returned are the same IDs of the 1st page.

Expected behavior

  • I expect the first 20 products to be returned with page 1 and the next 20 products (different ids) to be returned with page 2

Isolating the problem (mark completed items with an [x]):

  • I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active. I cannot do this because it is a client's WordPress site
  • This bug happens with a default WordPress theme active, or Storefront. Again, I cannot change the client's settings
  • I can reproduce this bug consistently using the steps above.

WordPress Environment

```json { "environment": { "home_url": "removed for confidentiality", "site_url": "removed for confidentiality", "version": "3.7.1", "log_directory": "removed for confidentiality", "log_directory_writable": true, "wp_version": "5.2.4", "wp_multisite": false, "wp_memory_limit": 1073741824, "wp_debug_mode": false, "wp_cron": true, "language": "en_US", "external_object_cache": null, "server_info": "Apache/2.4.29 (Unix) mod_hive/6.27 OpenSSL/1.0.1e-fips mod_fastcgi/2.4.6", "php_version": "7.1.30", "php_post_max_size": 8388608, "php_max_execution_time": 0, "php_max_input_vars": 1000, "curl_version": "7.59.0, OpenSSL/1.0.2r", "suhosin_installed": false, "max_upload_size": 2097152, "mysql_version": "5.6.36", "mysql_version_string": "5.6.36-82.1-log", "default_timezone": "UTC", "fsockopen_or_curl_enabled": true, "soapclient_enabled": true, "domdocument_enabled": true, "gzip_enabled": true, "mbstring_enabled": true, "remote_post_successful": true, "remote_post_response": "200", "remote_get_successful": true, "remote_get_response": "200" }, "database": { "wc_database_version": "3.7.1", "database_prefix": "knmKzKHE_", "maxmind_geoip_database": "removed for confidentiality", "database_tables": { "woocommerce": { "knmKzKHE_woocommerce_sessions": { "data": "1.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_woocommerce_api_keys": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_woocommerce_attribute_taxonomies": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_woocommerce_downloadable_product_permissions": { "data": "0.02", "index": "0.06", "engine": "InnoDB" }, "knmKzKHE_woocommerce_order_items": { "data": "0.20", "index": "0.09", "engine": "InnoDB" }, "knmKzKHE_woocommerce_order_itemmeta": { "data": "1.52", "index": "3.03", "engine": "InnoDB" }, "knmKzKHE_woocommerce_tax_rates": { "data": "0.02", "index": "0.06", "engine": "InnoDB" }, "knmKzKHE_woocommerce_tax_rate_locations": { "data": "0.02", "index": "0.05", "engine": "InnoDB" }, "knmKzKHE_woocommerce_shipping_zones": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_woocommerce_shipping_zone_locations": { "data": "0.02", "index": "0.05", "engine": "InnoDB" }, "knmKzKHE_woocommerce_shipping_zone_methods": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_woocommerce_payment_tokens": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_woocommerce_payment_tokenmeta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_woocommerce_log": { "data": "0.02", "index": "0.02", "engine": "InnoDB" } }, "other": { "knmKzKHE_aws_cache": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_aws_index": { "data": "21.53", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_bdp_archives": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_blog_designer_pro_shortcodes": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_bp_activity": { "data": "0.02", "index": "0.16", "engine": "InnoDB" }, "knmKzKHE_bp_activity_meta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_bp_friends": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_bp_messages_messages": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_bp_messages_meta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_bp_messages_notices": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_bp_messages_recipients": { "data": "0.02", "index": "0.08", "engine": "InnoDB" }, "knmKzKHE_bp_notifications": { "data": "0.02", "index": "0.11", "engine": "InnoDB" }, "knmKzKHE_bp_xprofile_data": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_bp_xprofile_fields": { "data": "0.02", "index": "0.08", "engine": "InnoDB" }, "knmKzKHE_bp_xprofile_groups": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_bp_xprofile_meta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_ccpo_post_order_rel": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_cli_cookie_scan": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_cli_cookie_scan_categories": { "data": "0.00", "index": "0.00", "engine": "MyISAM" }, "knmKzKHE_cli_cookie_scan_cookies": { "data": "0.00", "index": "0.00", "engine": "MyISAM" }, "knmKzKHE_cli_cookie_scan_url": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_cli_scripts": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_cli_visitor_details": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_commentmeta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_comments": { "data": "3.52", "index": "3.06", "engine": "InnoDB" }, "knmKzKHE_duplicator_packages": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_ewwwio_images": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_extrawatch_dm_counter": { "data": "0.02", "index": "0.05", "engine": "InnoDB" }, "knmKzKHE_extrawatch_dm_extension": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_extrawatch_dm_paths": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_extrawatch_dm_referrer": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_extrawatch_ip2c_cache": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_extrawatch_user_log": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_extrawatch_visit2goal": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_failed_jobs": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_FinalTiles_gallery": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_FinalTiles_gallery_images": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_gallery_albums": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_gallery_pics": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_gallery_settings": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_hook_list": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_huge_it_share_params": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_huge_it_share_params_posts": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_knmKzKHE_knmKzKHE_hook_list": { "data": "0.22", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_knmKzKHE_knmKzKHE_knmKzKHE_knmKzKHE_hook_list": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_links": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_mailchimp_carts": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_masterslider_options": { "data": "0.06", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_masterslider_sliders": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_mr_integrator_log": { "data": "4.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_mr_wc_dump_requests": { "data": "0.14", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_mr_wc_imports": { "data": "0.13", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_mr_wc_log": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_mr_wc_stats": { "data": "0.36", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_options": { "data": "19.50", "index": "2.81", "engine": "InnoDB" }, "knmKzKHE_pimwick_gift_card": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_pimwick_gift_card_activity": { "data": "0.05", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_pmxe_exports": { "data": "0.08", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_pmxe_google_cats": { "data": "0.39", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_pmxe_posts": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_pmxe_templates": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_postmeta": { "data": "128.63", "index": "46.17", "engine": "InnoDB" }, "knmKzKHE_posts": { "data": "16.52", "index": "8.03", "engine": "InnoDB" }, "knmKzKHE_profiler_details": { "data": "0.31", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_profiler_functions": { "data": "0.36", "index": "0.59", "engine": "InnoDB" }, "knmKzKHE_profiler_plugins": { "data": "0.33", "index": "0.31", "engine": "InnoDB" }, "knmKzKHE_profiler_requests": { "data": "2.52", "index": "0.30", "engine": "InnoDB" }, "knmKzKHE_queue": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_responsive_menu": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_exclude": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_folders": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_photos": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_photos_pos": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_resources": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_settings_presets": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_settings_sets": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_sliders": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_sorting": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_stats": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_tags": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_rs_videos": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_sbi_instagram_feeds_posts": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_sbi_instagram_posts": { "data": "0.27", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_signups": { "data": "0.02", "index": "0.06", "engine": "InnoDB" }, "knmKzKHE_smack_statistics": { "data": "43.56", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_termmeta": { "data": "0.42", "index": "0.61", "engine": "InnoDB" }, "knmKzKHE_terms": { "data": "0.20", "index": "0.22", "engine": "InnoDB" }, "knmKzKHE_term_relationships": { "data": "24.56", "index": "22.56", "engine": "InnoDB" }, "knmKzKHE_term_taxonomy": { "data": "0.23", "index": "0.27", "engine": "InnoDB" }, "knmKzKHE_usermeta": { "data": "1.52", "index": "3.03", "engine": "InnoDB" }, "knmKzKHE_users": { "data": "0.09", "index": "0.05", "engine": "InnoDB" }, "knmKzKHE_wc_admin_notes": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wc_admin_note_actions": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wc_category_lookup": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wc_customer_lookup": { "data": "0.13", "index": "0.06", "engine": "InnoDB" }, "knmKzKHE_wc_download_log": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_wc_gpf_render_cache": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wc_order_coupon_lookup": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_wc_order_product_lookup": { "data": "0.16", "index": "0.19", "engine": "InnoDB" }, "knmKzKHE_wc_order_stats": { "data": "0.13", "index": "0.14", "engine": "InnoDB" }, "knmKzKHE_wc_order_tax_lookup": { "data": "0.06", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_wc_points_rewards_user_points": { "data": "0.06", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_wc_points_rewards_user_points_log": { "data": "0.08", "index": "0.05", "engine": "InnoDB" }, "knmKzKHE_wc_product_meta_lookup": { "data": "2.52", "index": "5.05", "engine": "InnoDB" }, "knmKzKHE_wc_tax_rate_classes": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wc_webhooks": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wd_fb_data": { "data": "0.28", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wd_fb_info": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wd_fb_option": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wd_fb_shortcode": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wd_fb_theme": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wonderplugin_carousel": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_woocommerce_gpf_google_taxonomy": { "data": "1.52", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_woocommerce_termmeta": { "data": "0.02", "index": "0.03", "engine": "InnoDB" }, "knmKzKHE_wpforms_entries": { "data": "0.39", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wpforms_entry_fields": { "data": "0.31", "index": "0.17", "engine": "InnoDB" }, "knmKzKHE_wpforms_entry_meta": { "data": "0.02", "index": "0.02", "engine": "InnoDB" }, "knmKzKHE_wplc_chat_msgs": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wplc_chat_sessions": { "data": "1.52", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_wplc_offline_messages": { "data": "0.02", "index": "0.00", "engine": "InnoDB" }, "knmKzKHE_yoast_seo_links": { "data": "0.11", "index": "0.06", "engine": "InnoDB" }, "knmKzKHE_yoast_seo_meta": { "data": "0.31", "index": "0.00", "engine": "InnoDB" } } }, "database_size": { "data": 281.6599999999995, "index": 98.45999999999997 } }, "active_plugins": [ { "plugin": "query-monitor/query-monitor.php", "name": "Query Monitor", "version": "3.4.0", "version_latest": "3.4.0", "url": "https://querymonitor.com/", "author_name": "John Blackbourn", "author_url": "https://querymonitor.com/", "network_activated": false }, { "plugin": "PW-woo-brand-coupon/main.php", "name": "PW Woocomerce Brands coupon Addons", "version": "1.1", "version_latest": "1.1", "url": "http://proword.net/product/brand-coupon-add-on/", "author_name": "Proword", "author_url": "http://proword.net/", "network_activated": false }, { "plugin": "advanced-woo-search/advanced-woo-search.php", "name": "Advanced Woo Search", "version": "1.83", "version_latest": "1.84", "url": "", "author_name": "ILLID", "author_url": "https://advanced-woo-search.com/", "network_activated": false }, { "plugin": "akismet/akismet.php", "name": "Akismet Anti-Spam", "version": "4.1.3", "version_latest": "4.1.3", "url": "https://akismet.com/", "author_name": "Automattic", "author_url": "https://automattic.com/wordpress-plugins/", "network_activated": false }, { "plugin": "amazon-s3-and-cloudfront-pro/amazon-s3-and-cloudfront-pro.php", "name": "WP Offload Media", "version": "2.2.1", "version_latest": "2.2.1", "url": "https://deliciousbrains.com/wp-offload-media/", "author_name": "Delicious Brains", "author_url": "https://deliciousbrains.com/", "network_activated": true }, { "plugin": "amazon-web-services/amazon-web-services.php", "name": "Amazon Web Services", "version": "1.0.5", "version_latest": "1.0.5", "url": "http://wordpress.org/extend/plugins/amazon-web-services/", "author_name": "Delicious Brains", "author_url": "https://deliciousbrains.com/", "network_activated": true }, { "plugin": "astra-addon/astra-addon.php", "name": "Astra Pro", "version": "2.1.2", "version_latest": "2.1.2", "url": "https://wpastra.com/", "author_name": "Brainstorm Force", "author_url": "https://www.brainstormforce.com", "network_activated": false }, { "plugin": "astra-hooks/astra-hooks.php", "name": "Astra Hooks", "version": "1.0.1", "version_latest": "1.0.1", "url": "https://wpastra.com/", "author_name": "Brainstorm Force", "author_url": "http://www.brainstormforce.com", "network_activated": false }, { "plugin": "blog-designer-pro/blog-designer-pro.php", "name": "Blog Designer Pro", "version": "1.1", "version_latest": "1.1", "url": "https://www.solwininfotech.com/product/wordpress-plugins/blog-designer-pro/", "author_name": "Solwin Infotech", "author_url": "https://www.solwininfotech.com/", "network_activated": false }, { "plugin": "classic-editor/classic-editor.php", "name": "Classic Editor", "version": "1.5", "version_latest": "1.5", "url": "https://wordpress.org/plugins/classic-editor/", "author_name": "WordPress Contributors", "author_url": "https://github.com/WordPress/classic-editor/", "network_activated": false }, { "plugin": "constant-contact-woocommerce/plugin.php", "name": "Constant Contact + WooCommerce", "version": "1.1.0", "version_latest": "1.1.0", "url": "https://github.com/WebDevStudios/constant-contact-woocommerce", "author_name": "Constant Contact", "author_url": "https://www.constantcontact.com/", "network_activated": false }, { "plugin": "custom-product-category/custom-product-category.php", "name": "Custom product category widget", "version": "1.0.0", "version_latest": "1.0.0", "url": "", "author_name": "", "author_url": "", "network_activated": false }, { "plugin": "elementor-pro/elementor-pro.php", "name": "Elementor Pro", "version": "2.7.3", "version_latest": "2.7.3", "url": "https://elementor.com/", "author_name": "Elementor.com", "author_url": "https://elementor.com/", "network_activated": false }, { "plugin": "elementor/elementor.php", "name": "Elementor", "version": "2.7.5", "version_latest": "2.7.5", "url": "https://elementor.com/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash", "author_name": "Elementor.com", "author_url": "https://elementor.com/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash", "network_activated": false }, { "plugin": "fraudlabs-pro-for-woocommerce/init.php", "name": "FraudLabs Pro for WooCommerce", "version": "2.13.0", "version_latest": "2.13.0", "url": "https://www.fraudlabspro.com", "author_name": "FraudLabs Pro", "author_url": "https://www.fraudlabspro.com/", "network_activated": false }, { "plugin": "google-maps-widget/google-maps-widget.php", "name": "Maps Widget for Google Maps", "version": "4.17", "version_latest": "4.17", "url": "https://www.gmapswidget.com/", "author_name": "WebFactory Ltd", "author_url": "https://www.gmapswidget.com/", "network_activated": false }, { "plugin": "heartbeat-control/heartbeat-control.php", "name": "Heartbeat Control", "version": "1.2.5", "version_latest": "1.2.5", "url": "https://jeffmatson.net/heartbeat-control", "author_name": "Jeff Matson", "author_url": "http://jeffmatson.net", "network_activated": false }, { "plugin": "hide-featured-image/index.php", "name": "Hide Featured Image", "version": "1.3.1", "version_latest": "1.3.1", "url": "http://shahpranav.com/2015/05/hide-featured-image-on-single-post/", "author_name": "shahpranaf", "author_url": "http://shahpranav.com/", "network_activated": false }, { "plugin": "hide-title/dojo-digital-hide-title.php", "name": "Hide Title", "version": "1.0.9", "version_latest": "1.0.9", "url": "http://dojodigital.com", "author_name": "Dojo Digital", "author_url": "http://dojodigital.com", "network_activated": false }, { "plugin": "hw-image-widget/hw-image-widget.php", "name": "HW Image Widget", "version": "4.4", "version_latest": "4.4", "url": "http://wordpress.org/extend/plugins/hw-image-widget/", "author_name": "Håkan Wennerberg", "author_url": "http://webartisan.se/", "network_activated": false }, { "plugin": "image-widget/image-widget.php", "name": "Image Widget", "version": "4.4.7", "version_latest": "4.4.7", "url": "http://wordpress.org/plugins/image-widget/", "author_name": "Modern Tribe, Inc.", "author_url": "http://m.tri.be/iwpdoc", "network_activated": false }, { "plugin": "instagram-feed/instagram-feed.php", "name": "Smash Balloon Instagram Feed", "version": "2.1", "version_latest": "2.1.1", "url": "https://smashballoon.com/instagram-feed", "author_name": "Smash Balloon", "author_url": "https://smashballoon.com/", "network_activated": false }, { "plugin": "masterslider/masterslider.php", "name": "Master Slider Pro", "version": "3.2.14", "version_latest": "3.2.14", "url": "http://codecanyon.net/item/masterslider-pro/7467925?ref=averta", "author_name": "averta", "author_url": "http://averta.net", "network_activated": false }, { "plugin": "megamenu-pro/megamenu-pro.php", "name": "Max Mega Menu - Pro Addon", "version": "1.9.1", "version_latest": "1.9.1", "url": "https://www.megamenu.com", "author_name": "megamenu.com", "author_url": "https://www.megamenu.com", "network_activated": false }, { "plugin": "megamenu-storefront/megamenu-storefront.php", "name": "Max Mega Menu - StoreFront Integration", "version": "1.0.3", "version_latest": "1.0.3", "url": "https://www.megamenu.com", "author_name": "megamenu.com", "author_url": "https://www.megamenu.com", "network_activated": false }, { "plugin": "megamenu/megamenu.php", "name": "Max Mega Menu", "version": "2.7.2", "version_latest": "2.7.2", "url": "https://www.megamenu.com", "author_name": "megamenu.com", "author_url": "https://www.megamenu.com", "network_activated": false }, { "plugin": "meks-quick-plugin-disabler/meks-quick-plugin-disabler.php", "name": "Meks Quick Plugin Disabler", "version": "1.0", "version_latest": "1.0", "url": "https://mekshq.com", "author_name": "Meks", "author_url": "https://mekshq.com", "network_activated": false }, { "plugin": "mr-brands/mr-brands.php", "name": "MR Brands", "version": "1.4.0", "version_latest": "1.4.0", "url": "", "author_name": "Modern Retail", "author_url": "http://www.modernretail.com", "network_activated": false }, { "plugin": "mr-wc-integrator-plugin/mr-woocommerce-integration.php", "name": "WooCommerce Integrator", "version": "3.2.9", "version_latest": "3.2.9", "url": "", "author_name": "Modern Retail", "author_url": "https://www.modernretail.com", "network_activated": false }, { "plugin": "pw-black-friday/pw-black-friday.php", "name": "Black Friday and Cyber Monday for WooCommerce Pro", "version": "1.56", "version_latest": "1.56", "url": "https://www.pimwick.com/black-friday/", "author_name": "Pimwick, LLC", "author_url": "https://www.pimwick.com", "network_activated": false }, { "plugin": "pw-bogo/pw-woocommerce-bogo-free.php", "name": "PW WooCommerce BOGO Pro", "version": "2.107", "version_latest": "2.107", "url": "https://www.pimwick.com/pw-bogo/", "author_name": "Pimwick, LLC", "author_url": "https://www.pimwick.com", "network_activated": false }, { "plugin": "pw-bulk-edit/pw-bulk-edit.php", "name": "PW WooCommerce Bulk Edit Pro", "version": "2.213", "version_latest": "2.213", "url": "https://www.pimwick.com/pw-bulk-edit/", "author_name": "Pimwick, LLC", "author_url": "https://www.pimwick.com", "network_activated": false }, { "plugin": "pw-gift-cards/pw-gift-cards.php", "name": "PW WooCommerce Gift Cards Pro", "version": "1.143", "version_latest": "1.143", "url": "https://www.pimwick.com/gift-cards/", "author_name": "Pimwick, LLC", "author_url": "https://www.pimwick.com", "network_activated": false }, { "plugin": "regenerate-thumbnails/regenerate-thumbnails.php", "name": "Regenerate Thumbnails", "version": "3.1.1", "version_latest": "3.1.1", "url": "https://alex.blog/wordpress-plugins/regenerate-thumbnails/", "author_name": "Alex Mills (Viper007Bond)", "author_url": "https://alex.blog/", "network_activated": false }, { "plugin": "sg-cachepress/sg-cachepress.php", "name": "SG Optimizer", "version": "5.3.6", "version_latest": "5.3.6", "url": "https://siteground.com", "author_name": "SiteGround", "author_url": "https://www.siteground.com", "network_activated": false }, { "plugin": "shortcode-pagination-for-woocommerce/jck-woo-shortcode-pagination.php", "name": "Shortcode Pagination for WooCommerce", "version": "1.0.10", "version_latest": "1.0.10", "url": "https://iconicwp.com/products/shortcode-pagination-woocommerce/", "author_name": "James Kemp", "author_url": "https://iconicwp.com", "network_activated": false }, { "plugin": "sp-woocommerce-featured-product-by-category/sp-woocommerce-best-selling-products-by-category.php", "name": "WP woocommerce featured product by category", "version": "1.1", "version_latest": "1.1", "url": "", "author_name": "WP Online Support", "author_url": "http://wponlinesupport.com", "network_activated": false }, { "plugin": "tablepress-responsive-tables/tablepress-responsive-tables.php", "name": "TablePress Extension: Responsive Tables", "version": "1.5", "version_latest": "1.5", "url": "https://tablepress.org/extensions/responsive-tables/", "author_name": "Tobias Bäthge", "author_url": "https://tobias.baethge.com/", "network_activated": false }, { "plugin": "tablepress/tablepress.php", "name": "TablePress", "version": "1.9.2", "version_latest": "1.9.2", "url": "https://tablepress.org/", "author_name": "Tobias Bäthge", "author_url": "https://tobias.baethge.com/", "network_activated": false }, { "plugin": "the-events-calendar/the-events-calendar.php", "name": "The Events Calendar", "version": "4.9.10", "version_latest": "4.9.10", "url": "", "author_name": "Modern Tribe, Inc.", "author_url": "http://m.tri.be/1x", "network_activated": false }, { "plugin": "tinymce-advanced/tinymce-advanced.php", "name": "TinyMCE Advanced", "version": "5.2.1", "version_latest": "5.2.1", "url": "http://www.laptoptips.ca/projects/tinymce-advanced/", "author_name": "Andrew Ozz", "author_url": "http://www.laptoptips.ca/", "network_activated": false }, { "plugin": "ups-woocommerce-shipping/ups-woocommerce-shipping.php", "name": "UPS WooCommerce Shipping", "version": "3.10.11", "version_latest": "3.10.11", "url": "https://www.pluginhive.com/product/woocommerce-ups-shipping-plugin-with-print-label/", "author_name": "PluginHive", "author_url": "https://www.pluginhive.com/about/", "network_activated": false }, { "plugin": "woo-brand/main.php", "name": "Woocomerce Brands Pro", "version": "4.0", "version_latest": "4.0", "url": "http://proword.net/Woocommerce_Brands_pro/", "author_name": "Proword", "author_url": "http://proword.net/", "network_activated": false }, { "plugin": "woo-product-slider-and-carousel-with-category-pro/woo-product-slider-carousel.php", "name": "Woo Product Slider and Carousel with Category Pro", "version": "1.3", "version_latest": "1.3", "url": "https://www.wponlinesupport.com/", "author_name": "WP OnlineSupport", "author_url": "https://www.wponlinesupport.com/", "network_activated": false }, { "plugin": "woo-related-products-refresh-on-reload/woo-related-products.php", "name": "Related Products for WooCommerce", "version": "3.3.3", "version_latest": "3.3.3", "url": "http://woorelated.eboxnet.com", "author_name": "Vagelis P.", "author_url": "http://eboxnet.com", "network_activated": false }, { "plugin": "woocommerce-360-image/woocommerce-360-image.php", "name": "WooCommerce 360° Image", "version": "1.1.9", "version_latest": "1.1.11", "url": "https://woocommerce.com/products/woocommerce-360-image/", "author_name": "WooCommerce", "author_url": "https://woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-additional-variation-images/woocommerce-additional-variation-images.php", "name": "WooCommerce Additional Variation Images", "version": "1.7.16", "version_latest": "1.7.17", "url": "https://woocommerce.com/products/woocommerce-additional-variation-images/", "author_name": "WooCommerce", "author_url": "http://www.woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-admin/woocommerce-admin.php", "name": "WooCommerce Admin", "version": "0.21.0", "version_latest": "0.21.0", "url": "https://github.com/woocommerce/woocommerce-admin", "author_name": "WooCommerce", "author_url": "https://woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-cart-tab/cart-tab.php", "name": "WooCommerce Cart Tab", "version": "1.1.2", "version_latest": "1.1.2", "url": "http://jameskoster.co.uk/tag/cart-tab/", "author_name": "jameskoster", "author_url": "http://jameskoster.co.uk", "network_activated": false }, { "plugin": "woocommerce-gateway-authorize-net-cim/woocommerce-gateway-authorize-net-cim.php", "name": "WooCommerce Authorize.Net Gateway", "version": "3.1.0", "version_latest": "3.1.0", "url": "http://www.woocommerce.com/products/authorize-net-cim/", "author_name": "SkyVerge", "author_url": "http://www.woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-google-ads/woocommerce-google-ads.php", "name": "Google Ads for WooCommerce", "version": "1.0.2", "version_latest": "1.0.2", "url": "https://woo.kliken.com/", "author_name": "Kliken", "author_url": "http://kliken.com/", "network_activated": false }, { "plugin": "woocommerce-google-analytics-integration/woocommerce-google-analytics-integration.php", "name": "WooCommerce Google Analytics Integration", "version": "1.4.14", "version_latest": "1.4.15", "url": "http://wordpress.org/plugins/woocommerce-google-analytics-integration/", "author_name": "WooCommerce", "author_url": "https://woocommerce.com", "network_activated": false }, { "plugin": "woocommerce-name-your-price/woocommerce-name-your-price.php", "name": "WooCommerce Name Your Price", "version": "2.10.0", "version_latest": "2.10.0", "url": "http://www.woocommerce.com/products/name-your-price/", "author_name": "Kathy Darling", "author_url": "http://kathyisawesome.com", "network_activated": false }, { "plugin": "woocommerce-order-custom/woocommerce-order-custom.php", "name": "WooCommerce Order Custom", "version": "1.0", "version_latest": "1.0", "url": "", "author_name": "Modernretail", "author_url": "https://www.modernretail.com", "network_activated": false }, { "plugin": "woocommerce-pip/woocommerce-pip.php", "name": "WooCommerce Print Invoices/Packing Lists", "version": "3.7.1", "version_latest": "3.7.1", "url": "http://www.woocommerce.com/products/print-invoices-packing-lists/", "author_name": "SkyVerge", "author_url": "http://www.woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-points-and-rewards/woocommerce-points-and-rewards.php", "name": "WooCommerce Points and Rewards", "version": "1.6.24", "version_latest": "1.6.25", "url": "https://woocommerce.com/products/woocommerce-points-and-rewards/", "author_name": "WooCommerce", "author_url": "https://woocommerce.com", "network_activated": false }, { "plugin": "woocommerce-product-filters/woocommerce-product-filters.php", "name": "Product Filters for WooCommerce", "version": "1.1.16", "version_latest": "1.1.16", "url": "https://woocommerce.com/products/product-filters/", "author_name": "Nexter", "author_url": "http://woocommerce.com/", "network_activated": false }, { "plugin": "woocommerce-simple-registration/woocommerce-simple-registration.php", "name": "Simple Registration for WooCommerce", "version": "1.5.2", "version_latest": "1.5.2", "url": "https://astoundify.com/products/woocommerce-simple-registration/", "author_name": "Astoundify", "author_url": "https://astoundify.com/", "network_activated": false }, { "plugin": "woocommerce/woocommerce.php", "name": "WooCommerce", "version": "3.7.1", "version_latest": "3.7.1", "url": "https://woocommerce.com/", "author_name": "Automattic", "author_url": "https://woocommerce.com", "network_activated": false }, { "plugin": "wp-all-export-pro/wp-all-export-pro.php", "name": "WP All Export Pro", "version": "1.5.6", "version_latest": "1.5.6", "url": "http://www.wpallimport.com/export/", "author_name": "Soflyy", "author_url": "", "network_activated": false }, { "plugin": "wp-crontrol/wp-crontrol.php", "name": "WP Crontrol", "version": "1.7.1", "version_latest": "1.7.1", "url": "https://wordpress.org/plugins/wp-crontrol/", "author_name": "John Blackbourn & crontributors", "author_url": "https://github.com/johnbillion/wp-crontrol/graphs/contributors", "network_activated": false }, { "plugin": "wp-seopress-pro/seopress-pro.php", "name": "SEOPress PRO", "version": "3.7.3", "version_latest": "3.7.3", "url": "https://www.seopress.org/seopress-pro/", "author_name": "SEOPress", "author_url": "https://www.seopress.org/seopress-pro/", "network_activated": false }, { "plugin": "wp-seopress/seopress.php", "name": "SEOPress", "version": "3.7.3", "version_latest": "3.7.3", "url": "https://www.seopress.org/", "author_name": "SEOPress", "author_url": "https://www.seopress.org/", "network_activated": false }, { "plugin": "wpforms/wpforms.php", "name": "WPForms", "version": "1.5.6.1", "version_latest": "1.5.6.1", "url": "https://wpforms.com", "author_name": "WPForms", "author_url": "https://wpforms.com", "network_activated": false }, { "plugin": "yith-woocommerce-bulk-product-editing-premium/init.php", "name": "YITH WooCommerce Bulk Product Editing Premium", "version": "1.2.18", "version_latest": "1.2.18", "url": "https://yithemes.com/themes/plugins/yith-woocommerce-bulk-product-editing/", "author_name": "YITH", "author_url": "https://yithemes.com/", "network_activated": false } ], "inactive_plugins": [], "dropins_mu_plugins": { "dropins": [ { "plugin": "advanced-cache.php", "name": "advanced-cache.php" }, { "plugin": "db.php", "name": "LudicrousDB" } ], "mu_plugins": [] }, "theme": { "name": "Astra", "version": "2.1.2", "version_latest": "2.1.2", "author_url": "https://wpastra.com/about/", "is_child_theme": false, "has_woocommerce_support": true, "has_woocommerce_file": false, "has_outdated_templates": false, "overrides": [], "parent_name": "", "parent_version": "", "parent_version_latest": "", "parent_author_url": "" }, "settings": { "api_enabled": true, "force_ssl": true, "currency": "USD", "currency_symbol": "$", "currency_position": "left", "thousand_separator": ",", "decimal_separator": ".", "number_of_decimals": 2, "geolocation_enabled": true, "taxonomies": { "external": "external", "grouped": "grouped", "pw-gift-card": "pw gift card", "simple": "simple", "variable": "variable" }, "product_visibility_terms": { "exclude-from-catalog": "exclude-from-catalog", "exclude-from-search": "exclude-from-search", "featured": "featured", "outofstock": "outofstock", "rated-1": "rated-1", "rated-2": "rated-2", "rated-3": "rated-3", "rated-4": "rated-4", "rated-5": "rated-5" }, "woocommerce_com_connected": "yes" }, "security": { "secure_connection": true, "hide_errors": true }, "pages": [ { "page_name": "Shop base", "page_id": "15", "page_set": true, "page_exists": true, "page_visible": true, "shortcode": "", "shortcode_required": false, "shortcode_present": false }, { "page_name": "Cart", "page_id": "3451", "page_set": true, "page_exists": true, "page_visible": true, "shortcode": "[woocommerce_cart]", "shortcode_required": true, "shortcode_present": true }, { "page_name": "Checkout", "page_id": "3454", "page_set": true, "page_exists": true, "page_visible": true, "shortcode": "[woocommerce_checkout]", "shortcode_required": true, "shortcode_present": true }, { "page_name": "My account", "page_id": "3457", "page_set": true, "page_exists": true, "page_visible": true, "shortcode": "[woocommerce_my_account]", "shortcode_required": true, "shortcode_present": true }, { "page_name": "Terms and conditions", "page_id": "", "page_set": false, "page_exists": false, "page_visible": false, "shortcode": "", "shortcode_required": false, "shortcode_present": false } ], "wc_authorize_net_cim": { "is_payment_gateway": true, "lifecycle_events": [ { "name": "upgrade", "time": 1572513181, "version": "3.1.0", "data": { "from_version": "3.0.7" } }, { "name": "upgrade", "time": 1568277771, "version": "3.0.7", "data": { "from_version": "3.0.6" } }, { "name": "upgrade", "time": 1565683631, "version": "3.0.6", "data": { "from_version": "3.0.5" } }, { "name": "upgrade", "time": 1562830057, "version": "3.0.5", "data": { "from_version": "3.0.4" } }, { "name": "upgrade", "time": 1560411994, "version": "3.0.4", "data": { "from_version": "3.0.3" } }, { "name": "upgrade", "time": 1557394811, "version": "3.0.3", "data": { "from_version": "3.0.2" } }, { "name": "upgrade", "time": 1555491273, "version": "3.0.2", "data": { "from_version": "3.0.1" } }, { "name": "upgrade", "time": 1553762720, "version": "3.0.1", "data": { "from_version": "3.0.0" } }, { "name": "upgrade", "time": 1553250159, "version": "3.0.0", "data": { "from_version": "2.10.2" } } ], "gateways": { "authorize_net_cim_credit_card": { "is_enabled": true, "is_available": true, "environment": "production", "debug_mode": false, "supports_tokenization": true, "is_tokenization_enabled": true, "form_type": "inline", "has_client_key": true }, "authorize_net_cim_echeck": { "is_enabled": false, "is_available": false, "environment": "production", "debug_mode": false, "supports_tokenization": true, "is_tokenization_enabled": false, "form_type": "inline", "has_client_key": true } } }, "wc_pip": { "is_payment_gateway": false, "lifecycle_events": [ { "name": "upgrade", "time": 1567587220, "version": "3.7.1", "data": { "from_version": "3.7.0" } }, { "name": "upgrade", "time": 1565683631, "version": "3.7.0", "data": { "from_version": "3.6.7" } }, { "name": "upgrade", "time": 1561019657, "version": "3.6.7", "data": { "from_version": "3.6.6" } }, { "name": "upgrade", "time": 1560156161, "version": "3.6.6", "data": { "from_version": "3.6.5" } }, { "name": "upgrade", "time": 1559829078, "version": "3.6.5", "data": { "from_version": "3.6.3" } }, { "name": "upgrade", "time": 1554301377, "version": "3.6.3", "data": { "from_version": "3.6.2" } } ] } } ```

line_items is empty while REST API Order refund.

Describe the bug
Versions: wc 3.5.0, wp 4.7.14 php 7.2

I'm working on implementing partial order refunds through Rest API (using ruby client). According to the documentation I can specify line items which I want to refund. I've tried with different data but I always got empty(empty array) line_items field in the response. Then I created a new order and made a refund via the UI. It works. I copied data from this refund, created a new one, changed id's in the copied data and tried to refund the new order through API but it doesn't work.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new order and pay for it but a payment method that supports an automatical refund (I did it with PayPal sandbox), wait for the confirmation from PayPal.
  2. Try to refund one of the line items via Rest API using the structure from the documentation above.
  3. Check line_items field of created refund
  4. See an empty array

Example body:

{
  "amount": "25.00",
  "reason": "",
  "refunded_payment": true,
  "meta_data": [],
  "line_items": [
    {
      "name": "Long Sleeve Tee",
      "product_id": 68,
      "variation_id": 0,
      "quantity": -1,
      "tax_class": "",
      "subtotal": "-25.00",
      "subtotal_tax": "0.00",
      "total": "-25.00",
      "total_tax": "0.00",
      "taxes": [],
      "meta_data": [
        {
          "key": "_refunded_item_id",
          "value": "114"
        }
      ],
      "sku": "woo-long-sleeve-tee",
      "price": 25
    }
  ]
}

I'm doing a post request with this body to /orders/:order_id/refunds.

Expected behavior
It creates a refund that contains a non-empty line_items field.

Screenshots

That's how the order should look like from UI
https://yadi.sk/i/X393MXb6jc18aw

But it looks like that:
https://yadi.sk/i/FNMhTSfteko81w

P.S. I've also found a similar 2 years old issue but without an answer.

Updating a product always returns woocommerce_product_image_upload_error

I have a custom plugin that creates/updates product pages from information retrieved from an external customer database. The plugin uses the WooCommerce REST API PUT request to update existing product page data. When I updated WooCommerce from ver 3.4.4 to ver 3.7.0 I began to see the following error for all product page updates:

Code: 400
Headers: Array
(
[Date] => Thu, 31 Oct 2019 17:34:55 GMT
[Server] => Apache/2.2.15 (CentOS)
[X-Powered-By] => PHP/7.2.1
[Set-Cookie] => PHPSESSID=7uo0ufol9pnejka6ru0pvm7sov; path=/
[Expires] => Wed, 11 Jan 1984 05:00:00 GMT
[Cache-Control] => no-transform, no-cache, must-revalidate, max-age=0
[Pragma] => no-cache
[X-Robots-Tag] => noindex
[Link] => http://beta.cdielectronics.com/wp-json/; rel="https://api.w.org/"
[X-Content-Type-Options] => nosniff
[Access-Control-Expose-Headers] => X-WP-Total, X-WP-TotalPages
[Access-Control-Allow-Headers] => Authorization, Content-Type
[Allow] => GET, POST, PUT, PATCH, DELETE
[Content-Length] => 159
[Connection] => close
[Content-Type] => application/json; charset=UTF-8
)
Body: {"code":"woocommerce_product_image_upload_error","message":"Invalid image: Sorry, this file type is not permitted for security reasons.","data":{"status":400}}

Our debug output for one of the product updates:

[31-Oct-2019 17:34:55 UTC] [admin-ajax.php][192.168.1.183][][DEBUG] upsert_wc_product called for sku 113-4041
[31-Oct-2019 17:34:55 UTC] [admin-ajax.php][192.168.1.183][][DEBUG] wc_existing_product_id: 19624
[31-Oct-2019 17:34:55 UTC] [admin-ajax.php][192.168.1.183][][DEBUG] get_post_thumbnail_id: no media attached to product ID = 19624
[31-Oct-2019 17:34:55 UTC] [admin-ajax.php][192.168.1.183][][DEBUG] Updating existing product: Data: Array
(
[sku] => 113-4041
[name] => Power Pack 4 Cyl.
[slug] => 113-4041
[type] => simple
[description] => 1988-2001 (120,125,130,135 & 140HP) Loop Charged Engines w/ Quick Start & S.L.O.W., 6700 RPM Limit

Replaces:

113-4041, 18-5772, 583489, 584040, 584041, 9-25017
[upsell_ids] => Array
(
[0] => 19427
)

[images] => Array
    (
        [0] => Array
            (
                [src] => http://beta.cdielectronics.com/wp-admin/admin-ajax.php?action=cdi_spget&spurl=https://sharepoint.cdielectronics.com/Controlled%20Documents/Product%20Images/113-4041.jpg
                [position] => 0
            )

    )

[categories] => Array
    (
        [0] => Array
            (
                [id] => 262
            )

    )

)

[31-Oct-2019 17:34:56 UTC] [admin-ajax.php][192.168.1.183][] Error: Invalid image: Sorry, this file type is not permitted for security reasons. [woocommerce_product_image_upload_error]

There are over 900 product pages we are attempting to update. This error is returned for every product page image file. I have verified that the image files exist.

Up through WooCommerce version 3.5.1 I do not get this error. I see the error for versions 3.6.5, 3.7.0, 3.7.1. I have not tested versions between 3.5.1 and 3.6.5 to see in which version the error starts appearing. I am assuming the error exists in all versions since at least 3.6.5.

POST /v2/orders or v3/orders does not handle instance_id according to schema

Describe the bug
In the documentation for the rest endpoints: POST v2/orders or POST v3/orders

The property "instance_id" is displayed as an property that could be posted.
https://ibb.co/jWTz3t5

Example on posted data if we post like documentation says:

"shipping_lines": [
    {
      "method_title": "Postage",
      "method_id": "flat_rate",
      "instance_id": "1",
      "total": "23.20",
      "total_tax": "5.80"
    }
  ],

Response from API:

    {
      "id": 60657,
      "method_title": "Postage",
      "method_id": "flat_rate",
      "instance_id": "",
      "total": "23.20",
      "total_tax": "5.80",
      "taxes": [
        {
          "id": 1,
          "total": "5.8",
          "subtotal": ""
        }
      ],
      "meta_data": [
        
      ]
    }
  ]

Instead if we post instance_id in meta_data:

"shipping_lines": [
  {
    "method_title": "Postage",
    "method_id": "flat_rate",
    "total": "23.20",
    "total_tax": "5.80",
    "meta_data": [
      {
        "key": "instance_id",
        "value": "1"
      }
    ]
  }
],

Reponse:

"shipping_lines": [
        {
            "id": 1645,
            "method_title": "Postage",
            "method_id": "flat_rate",
            "instance_id": "1",
            "total": "23.20",
            "total_tax": "5.80",
            "taxes": [
                {
                    "id": 1,
                    "total": "5.8",
                    "subtotal": ""
                }
            ],
            "meta_data": []
        }
    ],

To Reproduce

Screenshots
https://ibb.co/jWTz3t5

Expected behavior
A clear and concise description of what you expected to happen.

Isolating the problem (mark completed items with an [x]):

  • I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active.
  • This bug happens with a default WordPress theme active, or Storefront.
  • I can reproduce this bug consistently using the steps above.

API - Term Exists Check

Is your feature request related to a problem? Please describe.
It is very frustrating, that product categories get created even when they exists. This is due to the wp_insert_term function does not check children categories. For example in the live environment there are theses categories:
Media

  • CDs
  • Vinyl

When we do an API import via create product the categories "CDs" will be created as a new category.

Describe the solution you'd like
The category should be checked if it exists, before creating it. It is very simple, we added the following to the "includes/abstracts/abstract-wc-rest-terms-controller.php" starting before the wp_insert_term in line 397:

		$termExists = get_term_by( 'name', $request['name'], 'product_cat' );
		if ( $termExists ) {
			$error_data = array( 'status' => 400 );

			// If we're going to inform the client that the term exists,
			// give them the identifier they can actually use.
			$term_id = $termExists->term_id;
			if ( $term_id ) {
				$error_data['resource_id'] = $term_id;
			}

			return new WP_Error( 'term_exists', 'term_exists', $error_data );
		}

Describe alternatives you've considered
None

Additional context
Add any other context or screenshots about the feature request here.

Bildschirmfoto 2019-07-19 um 08 52 15

Can't add Product Variation Attribute Option when Attribute name is in Hebrew

Describe the bug
I am trying to create a Variation for a variable type product using WooCommerce Rest API (https://woocommerce.github.io/woocommerce-rest-api-docs/?shell#create-a-product-variation). Sadly, whenever the Attribute's name is in Hebrew, I can not do so. When I send over a "create variation" request, with the attributes id included and an option in hebrew/english, the attribute term is missing in the created variation.
I have seen a fix for that, but I guess it doesn't work anymore. (woocommerce/woocommerce#18436)

cURL Code

curl -X POST https://example.com/wp-json/wc/v3/products/PRODUCTIDHERE/variations \
    -u ck:cs \
    -H "Content-Type: application/json" \
    -d '{
  "regular_price": "10.90",
  "image": {
    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg"
  },
  "attributes": [
    {
      "id": 2,
      "option": "צבע"
    }
  ]
}'

Actions tried
I tried passing the attribute option in both English and Hebrew and it didn't work. when changing the Attribute name to a name in English (using the WooCommerce WP Admin Panel), everything works as expected- I can create product variations with option values in both Hebrew and English.

Expected behavior
The product variation should be listed with it's attribute/s even when the attribute's name is in Hebrew. I actually don't even pass the attribute name in the "create variation" request so it's really weird. I just pass the attribute's ID. meaning it's the WooCommerce handling code that messes it up.

WordPress Environment
<WordPress 5.2 | OceanWP Theme>

Apache,
WooCommerce version 3.6.5,
PHP 7.1.30,
512mb max upload,
Memory limit 256mb

Thanks in advance.
P.S: Sorry about the previous issues, I just figured out the problem..

Sold out.

I was wondering if the Api Returns Item's that are out of stock, And weather this is Intentional

So I would have a Product Group Called Let's Say Paint, 2/4 Paints would be sold out on the site They will not appear when the stock is out,

However on the api They appear still, And i'm curious if there's any plans for the Api to handle "Checks" On Checkouts for Quantity of Checkout item -> Site Item Quantity

And then give a Response we can then handle, So if you checkout a Paint Brush at a Quantity of 20 and the site has 15 On The Order.Add Response If there could be a check on that Response.I've looked threw and cant seem to find anything about this, So not sure if i'm missing something.

Problem with detach category from product

How can I detach a category from a product?

Why such a request does not work?

PUT /wp-json/wc/v3/products/39037

{
“categories”:[
{
“id”:1239
},
{
“id”:1232
}
]
}

Why do I continue to get the old categories?

“categories”:[
{
“id”:1096,
“name”:“Кроссовки”,
“slug”:“sneaker”
},
{
“id”:1239,
“name”:“Носки”,
“slug”:“clothing-socken”
},
{
“id”:1232,
“name”:“Одежда”,
“slug”:“clothing”
},
{
“id”:1233,
“name”:“Шапки”,
“slug”:“clothing-caps”
}
]

How can I leave only categories 1239, 1232 and remove the rest?

Register rest field attribute terms

Hello Everyone
I’m trying to add a custom field to the response of wp-json/wc/v3/products/attributes/3/terms.
I don’t know what $object_type I should assign to register_route_field to get the response.
Works on other $object_type like "product".
My product taxonomy is: pa_multicolor

add_action( 'rest_api_init', function() {
    register_rest_field(
        'pa_multicolor', // also I tried array(  ‘product_attributes’, ‘product_attribute_pa_multicolor’, ‘terms’, ‘term’, ‘pa_multicolor’, ‘product_attribute’  ),
        'custom_field_name',
        array(
            'get_callback' => function( $object, $field_name, $request ) {
				return "test";
            },
            'update_callback' => function( $value, $object, $field_name ) {
				return "test";
            },
            'schema' => array(
                'description' => __( 'Description here.', 'woocommerce' ),
                'type'        => 'string',
                'context'     => array( 'view', 'edit' )
            ),
        )
    );
});

‘custom_field_name’ doesn’t appear in the JSON of the reponse.

applying coupon on an order using woocommerce rest API

I am create an Ionic app (Android/iOS), I have written php API wrappers to create woocommerce orders. The issue is, I am unable to apply coupon_lines while creating order from rest API. You documentation says coupon_lines at the time of create order are "Read Only". Please make them writable as well, so that customers coming from mobile apps can also use coupon.

Just updated now API is not working

Hi All,
7 hours ago i used the python API to upload and change some data. in the last 2 hours i have updated WooCommerce to the latest version.

just now i have tired to upload a new product and have the following error

 {'code': 'woocommerce_rest_cannot_view',
 'data': {'status': 401},
 'message': 'Sorry, you cannot view this resource.'}

I'm using the python API i have also created a new API key just in-case that was a issue neither key is working.

if you need anymore info please let me know

WooCommerce REST API package: |   | 1.0.6 
WordPress version: |   | 5.3.2
python WooCommerceAPI: |   |2.1.1

thanks

Woocommerce Api

Describe the bug
Trying to get orders/statues.
with the Automattic\WooCommerce\Client;

To Reproduce
if ($woocommerce = new Client(
'https://Mywebsite.com',
'ck_17c7b1b0f0',
'cs_c4c33a56
57c0170*43cd70',
[
'wp_api' => true,
'version' => 'wc/v3',

]
))
//Only acticate when Api works
{

$orders = $woocommerce->get('orders');
$aantal_orders = count($orders);

$klanten = $woocommerce->get('customers');
$klanten = count($klanten);

// This line I get a error. have check multiple times the Api docs end they say that you can use it like this...
print_r($woocommerce->get('orders/statuses'));
}

Some one a idea how I can get I working?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.