Forum Replies Created

Viewing 12 replies - 1 through 12 (of 12 total)
  • Hi kamapet, that error tells us the admin could not load that CSS file, but it does not identify why. I would check the failed request before changing plugins on the live shop.

    Open the browser developer tools, select Network, enable Disable cache while those tools are open, and reload the affected admin page. Filter for 3799.style.css and note its status and response type. A 404, a 403, or an HTML response instead of CSS would point to different next steps; the error message alone cannot distinguish them. Also try a fresh private window, signing in normally.

    If the request is genuinely 404, ask your host or developer to check whether that file exists in the installed WooCommerce version and whether an older cached admin asset is requesting a chunk from a different version. If it is 403, have them inspect the matching server/security log entry rather than disabling protection globally.

    If the file loads correctly but the dashboard still fails, run a plugin/theme conflict test on staging with a current backup first. Avoid uninstalling WooCommerce or switching off live checkout components just to test this.

    Could you share the WordPress and WooCommerce versions, whether this started immediately after an update, and the failed request status? Those details would help narrow it down.

    For the staging/conflict-test part, this is our Danish walkthrough at Hostious, where I work: https://hostious.io/find-plugin-temakonflikt-wordpress/

    Thanks for adding the detail about the Facebook widget. That is a useful clue: a JavaScript error from one widget can affect other features on the same page, so the mini-cart could be affected even though the main Cart page still works. Removing the widget and seeing the cart work again makes a script conflict worth investigating, but does not yet prove the exact cause.

    For now, I would leave that widget disabled and keep your direct Cart link. In a fresh private window, add a product, visit another page, remove the product, and check that the mini-cart also shows its empty-cart message. Keep the other settings unchanged while checking whether the fix holds.

    If it returns, the first browser-console error and the name of the Facebook widget/plugin would help narrow it down. Any test with the widget enabled again should be on a staging copy.

    For more detail on separating mini-cart display problems from cart-data problems and checking JavaScript/theme conflicts, see this guide from Hostious, where I work (in Danish): https://hostious.io/woocommerce-kurv-opdaterer-ikke/#loesning-i-sikker-raekkefoelge

    Understood — you are selecting attributes that already exist, not creating new ones. Thanks for clarifying.

    We cannot yet choose between Wordfence and WPML from that 404. The “wpml_action” name tells us which request failed, not why it failed or whether it caused the attribute problem.

    You can check Wordfence without disabling it: immediately after reproducing the problem, open Wordfence > Tools > Live Traffic and look for a blocked request to /wp-admin/admin-ajax.php at the matching time. If there is one, share just the blocking reason, not the full record or your IP address. No matching entry would not rule Wordfence out, because logging settings can exclude traffic.

    Please also confirm the installed WPML/WooCommerce Multilingual versions and whether the failed request appears before you interact with the attributes, as in the previous test. That will give us evidence to work from rather than turning off protection on the live shop.

    [signature removed by moderators]

    That is a useful detail. The action name “wpml_action” points us towards a WPML-related request, but it does not yet show that this is the request responsible for adding the attribute. A background request can fail at the same time.

    Are WPML and WooCommerce Multilingual active, and which versions are installed?

    For the next test, clear the Network list, click Add for one existing global attribute once, then check all requests created by that click. Does only “wpml_action” fail, or is there another failed request with a different action value? Also check whether the same “wpml_action” 404 appears on a fresh product-editor page before you touch the attributes.

    If it fails even without an attribute action, that helps separate the two problems. “File not found” alone is not enough to say whether WordPress, the web server or a proxy generated the 404. Please keep the translation plugins and live settings unchanged while we establish that.

    [signature removed by moderators]

    Thanks for the update — glad it is working again. I’d leave the setup unchanged for now and keep an eye on the mini-cart during normal use. If it returns, please note what happened immediately beforehand; that will be more useful than changing several things at once.

    [signature removed by moderators]

    Thanks, that gives us something concrete to investigate. The important part is POST /wp-admin/admin-ajax.php returning 404. ‘load-scripts.php:8’ identifies the browser script reporting the failure; it does not establish what caused it.

    In Network, select that failed POST and check:

    • Does Request URL use the correct domain and WordPress installation path?
    • In Response/Preview, is it a normal WordPress 404 page, a hosting/CDN error page, or a short error message?
    • What is the ‘action’ value under Payload/Form Data? Share only that value and the short error text, not cookies, nonces or a full request export.

    Reload the product editor before repeating the same test on your draft/staging product. If it happens again, note the exact time and ask your host to compare the failing POST with a successful one in their access/error logs. That should help identify which layer returns the 404 before changing hosting, permalinks or plugins on guesswork.

    Does the failure happen when adding an existing global attribute to the product, or when creating a new attribute value?

    [signature removed by moderators]

    Hi @patrickhaond. The screenshot is useful: it shows ‘Échec de l’ajout du nouvel attribut’ with a loading overlay. That looks like an attribute-add operation failing, rather than simply having no global attributes to choose from. A slow host alone does not tell us why it failed.

    First, can you open Products > Attributes normally, and does this happen with every global attribute or only ‘Genre’?

    For one controlled test, use a draft product on a staging copy if available. Open your browser’s developer tools > Network, then try adding the same existing global attribute once. If a request fails, note its HTTP status and the first error shown in the Console. Please share just that error/status, not a full request export with cookies or authentication headers. This helps distinguish a failed server request from a JavaScript problem before changing hosting or installing more plugins.

    Which exact WordPress, WooCommerce and PHP versions are you using?

    Adam

    Hi @charmedchicken. The useful clue is the caller in the exception: ‘from scope WC_NYP_Store_API’, not just the file where WooCommerce catches it. That points towards a Store API integration trying to call a method it cannot access.

    Are you using the Name Your Price extension? If so, please check its version separately from WooCommerce’s version. Updating WooCommerce alone does not update that extension.

    On a staging copy, temporarily deactivate only Name Your Price and repeat the exact action that produces the error. If the error disappears, that isolates the integration; it does not mean you should leave it disabled on the live store, where products may depend on it. Please don’t edit ExtendSchema.php or change the protected method to public.

    Which exact WooCommerce, Name Your Price and PHP versions are installed, and does this happen when loading a product, cart or checkout? If the staging test points to Name Your Price, its developer’s support is linked here: https://woocommerce.com/document/name-your-price/

    Adam

    Hi @funcdesign. Since this also happens with WooCommerce alone and a default theme, I’d test URL routing before changing WPBakery.

    The shared ‘shop’ path is worth isolating: your normal child pages use /shop/…, while you have also assigned ‘shop’ as the product-category base. That is a possible overlap, not a confirmed diagnosis.

    On the clone:

    1. Save Settings > Permalinks once without changing anything, then retest one failing child page.
    2. If it still fails, change only the Product category base from ‘shop’ to ‘product-category’, save, and test the same child-page URL again. Leave the page’s parent and slug unchanged.

    If the second test changes the result, that gives us a useful lead. Don’t copy that URL change to the live site yet: changing category URLs can require redirects for existing links.

    WooCommerce’s permalink guide explains the separate bases and rewrite-rule refresh: https://woocommerce.com/document/permalinks/

    What is selected under Product permalinks, and can you share the path of one working child page and one failing one? The WPBakery message alone doesn’t establish a missing theme content area when the request is already returning a 404.

    Adam

    Thanks, that helps: the main Cart page being correct narrows the problem to how the mini-cart is displayed or refreshed.

    The code you posted reloads the whole page when either of those events fires; it does not refresh only the mini-cart. It is worth testing without it, but the snippet alone is not evidence that it causes the empty mini-cart.

    On a staging copy, save the original snippet, temporarily disable just that snippet, clear the plugin and hosting caches, and repeat the same add/remove-product test. Keep the other settings unchanged for this comparison. If nothing changes, the snippet is less likely to be the cause. Please avoid editing the live theme files just to test this.

    One useful detail: when the mini-cart is empty, does a normal browser refresh on that same page make the products appear? Also, let us know the result of the page-cache-off test before changing any more cache plugins.

    Adam

    Hi @1839lab, yes — WP Fastest Cache supports WooCommerce, so you don’t need to install W3 Total Cache just to try the cache test. Please don’t run both page-cache plugins at the same time.

    To keep the test manageable:

    1. Keep just one page-cache plugin active and clear its cache. If your host also caches pages, clear that cache too.
    2. Open a new private/incognito window, add a product, then visit another page and open the mini cart again. Try changing the quantity as well.
    3. If it still fails, temporarily switch off that plugin’s page caching, clear any remaining cache, and repeat the same steps in a new private window. Do this on staging if possible, or during a quiet period.

    If the mini cart works with caching off but fails with it on, that gives us a useful direction. If it fails in both tests, we should look beyond page caching rather than keep switching cache plugins.

    Which cache plugin is active now, and does the full Cart page show the correct products when the mini cart looks empty? No need to change your theme or install another cache plugin yet.

    Adam

    Yes — that split state is consistent with execution stopping after the item-level stock updates but before WooCommerce persists the order-level flag. In core, wc_maybe_reduce_stock_levels() first calls wc_reduce_stock_levels(). That function reduces each line item and saves its _reduced_stock value. Only after it returns does WooCommerce call set_stock_reduced( $order_id, true ). So an uncaught Throwable, PHP-FPM worker termination, timeout/OOM, or a failure in a callback fired during stock notifications can leave the line items reduced while _order_stock_reduced remains false.

    I would add temporary before/after logging around wc_maybe_reduce_stock_levels and the hooks woocommerce_reduce_order_item_stock and woocommerce_reduce_order_stock, plus a shutdown handler that records error_get_last(). Also check the PHP-FPM and web-server logs, not only WordPress error_log, because a killed worker may never reach the WordPress logger. The missing stock note and emails make the notification/callback part of the sequence especially worth instrumenting.

    For the affected order, reconcile the physical product quantities against each line item’s _reduced_stock before changing any order-level flag manually; flipping the flag without that reconciliation can create a second inventory error.

Viewing 12 replies - 1 through 12 (of 12 total)