Contents
Troubleshooting - Plugixa Recipe
Common issues and fixes. The plugin writes no log of its own; for anything not covered here, turn on WordPress’s own WP_DEBUG_LOG and read wp-content/debug.log.
Install / activation
“Class PlugixaRecipe\Activator not found”
The PSR-4 autoloader couldn’t find a class file. Check that:
- The
/includes/directory is intact (no files deleted or permission-protected). - Your PHP version is 8.0+ (
php -v). spl_autoload_registerisn’t disabled inphp.ini.
Tables weren’t created on activation
Deactivate and reactivate the plugin. The activator (class-activator.php) runs dbDelta() - which is idempotent, so re-activation is safe.
If tables still don’t appear:
- Check the MySQL user has
CREATE TABLEprivileges on the WordPress database. - Look for errors in
wp-content/debug.log(withWP_DEBUG_LOGon). - Run the activator manually from a custom script:
\PlugixaRecipe\Activator::activate();
Frontend display
Shortcode shows “[plugixa_recipe]” text instead of the grid
WordPress isn’t processing the shortcode. Check:
- The plugin is active.
- You’re using
[plugixa_recipe], not[plugixa-recipe](the slug, not the plugin folder name). - The page content type accepts shortcodes (most do; some page builders disable this).
Grid is empty
- Check Recipes → Recipes - is there any content?
- Are recipes in
status = published? - Are there recipes matching the category / cuisine / diet filter you passed?
- Enable Settings → Advanced → Debug mode - the log will show the SQL query used.
Styles look broken / missing
The plugin enqueues its frontend CSS only on pages with [plugixa_recipe] or its widget shortcodes. If you render the grid via PHP (outside a shortcode), call:
PlugixaRecipe\Frontend\Shortcodes::enqueue_assets_static();
Or add the shortcode once on the page (empty div is fine) and it will enqueue for the whole page.
Images not showing
- Check your WordPress media library for the images (via Media → Library).
- Verify your image size setting in the view (Views → Edit → Image & Video) -
fullis heavy; trymedium_large. - CDN / WPRocket may be blocking the media URLs - check with those plugins’ “image offload” settings.
Admin
React admin shows blank screen
- Open DevTools → Console. A JavaScript error will explain.
- Clear WordPress object cache: Settings → Performance → Flush caches.
- If you’re developing locally, the HMR dev server might be down. Stop the plugin’s HMR by unsetting
WP_DEBUGor by addingdefine('PLUGIXARECIPE_DISABLE_HMR', true)towp-config.php.
“You do not have permission to view this page”
Your user lacks the plugixa_recipe_* capabilities. These are added to the administrator role on activation. If you’re on a custom role:
$role = get_role('editor');
$role->add_cap('plugixa_recipe_manage');
$role->add_cap('plugixa_recipe_edit');
Changes aren’t saving
Check the browser DevTools → Network tab. If you see 403 responses, the REST nonce expired - refresh the page.
AI Generator
“Your quota has been exhausted”
Your OpenAI / Google account is out of credits. This is a billing issue with the LLM provider - the plugin relays the error verbatim.
“Model gpt-4o not found”
The model id in Settings → AI is wrong (or the model was deprecated). Try gpt-4o-mini or gpt-3.5-turbo. For Gemini, use gemini-1.5-flash or gemini-1.5-pro.
Document upload fails
- Check PHP
upload_max_filesizeis at least 20 MB. - Check
post_max_sizeis bigger thanupload_max_filesize. - Some hosts block PDF MIME types - enable
image/*,application/pdfin the Allowed mime types filter.
Import / Export
Import shows “Invalid format”
The importer auto-detects the format from the JSON/CSV structure. If detection fails:
- JSON files must have a top-level
recipesarray. - CSV files need a header row.
- WPRM exports must come from the source plugin’s own export tool (partial JSON won’t match).
Images aren’t imported
Your host may be blocking outbound HTTP from PHP:
add_filter('pre_http_request', function ($pre, $args, $url) {
if (!str_contains($url, $_SERVER['HTTP_HOST'])) {
error_log("Blocked outbound: $url");
}
return $pre;
}, 10, 3);
If outbound is blocked, import without images first, then re-import with image URLs replaced by local paths.
Reviews & submission
Reviews submit but don’t appear
- Check Recipes → Reviews - are they
status = pending? Approve them or enable auto-approve. - reCAPTCHA threshold too strict - lower the score threshold in Settings → Captcha.
Submission form shows nothing
- The user role may be blocked by Settings → General → Who can submit.
- If Require login is on, guests see a sign-in link instead of the form.
Performance
Slow page load with shortcode on it
- Enable object cache (Redis / Memcached) if your host supports it. The plugin caches recipe queries under
pxr_*keys. - Reduce
limit- rendering 100 cards is heavier than rendering 12 + pagination. - Turn on lazy loading (Settings → Display).
- Defer non-critical scripts (Settings → Performance).
Too many database queries
The single recipe page makes one query per feature (ingredients, instructions, nutrition, reviews, related). They’re cached under the object cache - a second view is a single cache hit.
If your recipes have 50+ steps / ingredients, consider simplifying or splitting into multiple recipes.
WPML / Polylang
Recipes show in the wrong language
The REST endpoint honours the active language - but if you see recipes bleed across languages, check:
language_codeis populated on the recipe (not NULL).- WPML: the recipe post-type registration matches your WPML config.
- Polylang: the current language detection works (visit
/wp-json/plugixa-recipe/v1/recipesand watch the request headers).
Uninstall
“Also delete all plugin data” didn’t delete my data
- Confirm Settings → Advanced → Delete all data on uninstall was switched ON before the plugin was deleted. It is a key inside the
plugixa_recipe_settingsoption, not an option of its own, anduninstall.phpreads it. - Confirm
uninstall.phpran - some caching plugins hold that file open during deletion. - Manual cleanup: drop the 24 tables (prefixed
wp_plugixa_recipe_) and the optionplugixa_recipe_settings.
Getting help
- Turn on
WP_DEBUG_LOGinwp-config.phpand reproduce the issue. The plugin writes no log of its own, so WordPress’s ownwp-content/debug.logis the one to read. - Copy the last 50 lines, along with your WordPress, PHP and plugin versions.
- Share them with support; that is usually enough to pinpoint the fix.