Author: admin

  • Solving Featured Image Display Bugs in Custom WordPress Themes

    Plugin Dependency Check

    The theme assumed WooCommerce and other WordPress plugins were active, causing PHP warnings when they weren’t. Logic was updated to safely verify plugin presence before executing related code and to ensure WordPress function calls in the dashboard don’t fail.

    Shortcode Issue Resolved

    A broken rendering pipeline prevented shortcodes like [member_logged_in_title] from appearing. Fixing upstream errors restored their functionality across template files and post or page content, making sure embeds and lazy loading images show properly.

    Fixing the Meta Logic

    The “Hide Featured Image” toggle wasn’t working as intended due to incorrect handling of serialized custom fields. The logic was updated to properly read and apply the toggle across all WordPress site posts, ensuring featured image 0 / 3-15 and thumbnail display correctly, regardless of file permissions or image size.

    Removed Hardcoded Limits

    The visibility rule was oddly restricted to post IDs over 29997. We eliminated this condition so the toggle now works for all posts, whether in media library, archive.php, or new post pages, and respects customizer settings, functions.php logic, and block editor previews.

    Final Outcome

    ✅ PHP warnings eliminated
    ✅ Featured image toggle now works everywhere
    ✅ Shortcodes and embeds function normally
    ✅ Page editor UX simplified by aligning toggle behavior

    If your theme’s logic is holding back your WordPress site, we’re here to help.

    Frequently Asked Questions (Solving Featured Image Display Bugs in Custom WordPress Themes)

    Why is my WordPress featured image not showing properly?

    Your WordPress featured image may not show properly due to theme limitations, incorrect image size, caching issues, or plugin conflicts. Check if the theme supports featured images, regenerate thumbnails, clear cache, and deactivate plugins one by one to identify conflicts. Correct settings usually fix it.

    How to fix a broken WordPress theme?

    To fix a broken WordPress theme, first switch to a default theme to isolate the issue. Check for plugin conflicts by deactivating all plugins, then reactivate one by one. Clear cache, update WordPress, theme, and plugins, and restore a backup if needed. Custom code may require debugging.

    How to make a featured image responsive in WordPress?

    To make a featured image responsive in WordPress, ensure your theme uses the_post_thumbnail() with proper CSS. Add img { max-width: 100%; height: auto; } in your stylesheet or use a responsive image plugin. WordPress’s built-in srcset usually handles different screen sizes automatically.

    What is the best size for featured image?

    The best featured image size for WordPress is typically 1200×628 pixels. This size works well for blog posts, social media sharing, and responsive themes. Use optimized, high-quality images with a consistent aspect ratio to ensure proper display across all devices.

  • Solving Popup & Layout Glitches in ACF-Powered WordPress Pages

    Here’s how we solved a similar problem and how you can too.

    ️ What Was Going Wrong?

    On a custom-built webinar landing page, two annoying issues came up:

    • Popups linked to speaker images weren’t opening at all for some users.
    • Longer user names were breaking the layout, pushing spacing out of alignment and making the section look messy.

    After a quick inspection, it became clear the ACF-powered popups were clashing with the front-end layout—especially where content was incomplete or improperly configured.

    What We Fixed

    ✅ 1. Removed Empty Popup Triggers

    An unlinked popup trigger attached to one image was causing the popup script to fail. We removed the rogue trigger so each image only fired when data actually existed.

    ✅ 2. Extended ACF for More Profiles

    We updated the template and backend to support up to six speakers dynamically, using ACF fields cleanly mapped to each popup’s content.

    ✅ 3. Repaired the Layout Grid

    Long names were throwing off alignment. We restructured the layout using a more flexible grid, adjusting spacing and vertical alignment for a polished appearance.

    ✅ 4. Built-In Fallbacks

    We tested how the page would behave when ACF popup content was missing—and added fallback behavior to ensure the layout stays clean even without complete data.

    ✅ The Result?

    • Fully functional popups, displayed only when actual data exists
    • A consistent layout that works for short or long names
    • Clean content management in the backend with flexible ACF fields

    Want help designing dynamic layouts that just work?

    ‍

  • Switching from Dynamic to Static Google Maps in WordPress

    The Problem ‍

    Using dynamic Google Maps on dozens of WordPress sites and custom post pages can drain your API quota and impact site performance. If every location page loads a live map using Google Maps API, embedded maps, or dynamic markers, you’re likely triggering map API calls that rack up unnecessary costs and slow things down. This affects page load, map display, and overall user experience.

    What We Found

    Dynamic map calls were made on each page load
    API usage logs showed high volume, even during low-traffic periods, impacting API quota and pricing
    Zoom levels, map type, map markers, and pin placements varied slightly, causing design inconsistencies
    Pages loaded slower due to external map requests, JavaScript, and Google API scripts

    Our Approach
    ‍

    1: Add a Static Map Field

    Created an ACF image field (location_static_map) for uploading pre-generated static image thumbnails to each location post. This allowed custom fields to store coordinates and address details, resolving dynamic map display issues.

    2: Generate Map Thumbnails

    Used manual tools, Google Maps Static API, and Google Maps previews to generate map images with precise zoom, style, and marker placement. This ensured consistent design across locations while following Google API official documentation and terms of service. Optional placeholder images were added for pages with missing coordinates.

    3: Replace Live Maps with Images

    Updated the location template PHP code to pull in the uploaded static map image instead of making a live map request. This swap reduced usage, removed unnecessary scripts, and controlled map load and map markers dynamically.

    4: Optimize and Clean Up

    ‍Removed unused Google Maps scripts and JavaScript, tested across devices for speed, responsiveness, and visual clarity, and enabled caching to reduce costly API requests.

    The Result

    ‍
    ✅ Lower API usage
    ✅ Faster page loads
    ✅ Accurate, consistent visuals
    ✅ No more surprise billing from Google

    This approach is especially useful for franchise sites, healthcare chains, and service-based businesses with multiple locations.

    Want to Lower API Costs While Keeping Visual Quality?
    Let Integriti Studio help you streamline your WordPress maps setup with a smarter, static approach.

    Frequently Asked Questions (Switching from Dynamic to Static Google Maps in WordPress)

    How do I change the Google Maps in WordPress?

    To change Google Maps in WordPress, edit the page or post where the map is added. Update the address, embed code, or API key inside the block, shortcode, or plugin settings. Save changes, clear cache if needed, and refresh the page to see updates.

    What is the difference between static and dynamic Google Maps?

    A static Google Map is a simple image showing a fixed location with no interaction. A dynamic Google Map is interactive, allowing users to zoom, drag, click markers, and get directions. Static maps load faster, while dynamic maps offer better user engagement and functionality.

    How do I change the map type in Google Maps?

    To change the map type in Google Maps, open the map and click the Layers or Map type icon. Choose options like Default, Satellite, Terrain, or Street View. On websites or apps, adjust the map type setting in the embed code or API configuration.

    Does the Google Static maps API require a maps API key?

    Yes, the Google Static Maps API requires a Maps API key for most use cases. The API key helps Google track usage, apply quotas, and ensure billing compliance. Without a valid key, requests may fail or return limited functionality, especially for production websites or applications.

  • Troubleshooting API Access & Payment Issues with Authorize.net in WooCommerce

    The Checkout Issue at a Glance

    A client noticed possible disruptions at checkout, especially for non-logged-in users. The payment method in use was Authorize.net’s CIM integration for credit card processing. Even with orders still trickling in, there were red flags worth investigating.

    What We Uncovered

    The issue wasn’t just technical—it involved platform access, permissions, and workflow constraints:

    • Access Required 2FA: Gaining entry into the Authorize.net account was delayed due to two-factor authentication (2FA), which needed manual PIN relays from the client.
    • Missing API Key Options: Logged-in users couldn’t see the API regeneration section—hinting at limited permission access.
    • High-Risk API Rotation: Replacing the live API key without a backup would risk cutting off checkout immediately.

    How We Moved Forward Safely

    1. Secure Login Coordination
      Worked closely with the client to retrieve time-sensitive 2FA codes for dashboard access.
    1. Checked Admin Rights
      Confirmed the account user had restricted visibility; flagged the need for full admin rights to proceed.
    1. Planned a Zero-Downtime Switch
      Held off any API regeneration until a backup key could be pre-configured and tested.
    1. Collaborated with the Client
      Created a joint action plan so updates could happen in real time, with no checkout breakage.

    What It Meant for the Business

    By staying cautious and collaborative, we ensured the live store wasn’t impacted—even as we dug into critical gateway connections. The client now has a clear, secure path forward for managing future Authorize.net credentials with confidence.

    Need Help With Secure Checkout Setup?

    Payment integrations are delicate. One misstep can mean lost revenue. Let our team guide you through secure, high-uptime eCommerce architecture—whether you use Authorize.net, Stripe, or custom API workflows.

    ‍

  • Troubleshooting Dealer Pricing Issues in WooCommerce

    What’s Going Wrong?

    Sometimes, even after removing or updating dealer pricing in your WooCommerce backend, the old product prices continue to show up for logged-in merchant or distributor users. The issue often appears in:

    • The “Your Price” or dealer-specific price field.
    • The “From–To” pricing range on variable products.
    • Front-end views for distributor or wholesale user roles.

    If your backend is clean but outdated prices still display, it’s usually a sign that your pricing data hasn’t recalculated properly, even when using the latest version of the WooCommerce plugin or after switching between regular price and sale price.

    How to Fix the Problem

    1. Review Distributor Pricing Logic

    Start by checking any custom function or code that sets dealer or distributor prices—especially for variable products. These functions need to correctly reset or update pricing on save and reflect changes in Google Merchant Center feeds.

    2. Trigger a Product Save

    WooCommerce doesn’t always recalculate pricing automatically. After fixing the logic, you’ll likely need to manually save the affected products—or better yet, run a bulk script to do it at scale, ensuring that all database entries are updated.

    3. Revisit Variable Products

    With variable products, the pricing often won’t update unless you open the tab and manually save changes. This WooCommerce limitation can occur even in the latest version, so each specific product may need individual attention.

    4. Clear All Caches

    Outdated cache (from CDNs, caching plugins, object cache, or browser sessions) can serve incorrect prices even after fixes. Always clear all layers of cache after updates to avoid frontend display issues.

    ✅ After You Fix It

    Once your functions are working, products are re-saved, and cache is cleared:

    • Dealer pricing updates will reflect instantly for logged-in distributors.
    • Price ranges on variable products will show the correct range.
    • Your product catalog will remain consistent across user roles.

    Pro Tips

    • Variation Pricing Requires Manual Handling: 
      WooCommerce doesn’t always let you fully automate price recalculation for product variations.
    • Custom Code Errors Hide in Logs: Check your PHP logs for silent function failures or fatal errors that can break price updates.
    • Bulk Update with Caution: Use custom scripts carefully—test on staging first to ensure that sale and regular prices are correctly applied.
    • Clear All Cache Layers: Don’t forget about object cache, CDN cache, and plugin cache to make latest pricing visible.

    Need help managing custom pricing, user role conditions, or WooCommerce display logic?

    Frequently Asked Questions (Troubleshooting Dealer Pricing Issues in WooCommerce)

    Why are dealer prices not showing for certain users?

    Check that the user role is correctly assigned to “Dealer.” Ensure your pricing plugin is active and properly configured. Clear any caching plugins and refresh the product page to see updated prices.

    How do I fix incorrect dealer discounts?

    Verify the discount rules in your pricing or membership plugin. Check for conflicts with other WooCommerce plugins or custom code. Update the plugin and recalculate prices if necessary.

    Dealer pricing is showing but checkout total is wrong. What to do?

    Ensure the pricing rules apply to cart and checkout. Clear WooCommerce and browser caches. Check for plugin conflicts or outdated templates affecting price calculations.

    Why isn’t WooCommerce applying dealer pricing automatically?

    Confirm the user is logged in with the dealer role. Make sure product visibility settings allow dealer pricing. Check that your pricing plugin’s automatic rules are enabled.

  • Troubleshooting Elementor Editor Not Loading (Without Losing Content)

    This guide walks you through how we fixed the problem without rebuilding the page from scratch.

    ⚠️ The Issue: Draft Page Won’t Load

    A client reached out after noticing that their wordpress site, while the live homepage still loaded—just very slowly. They had already made major edits on the draft and wanted to avoid starting over. The elementor editor was stuck on the loading screen, failing to load the editor panel in both elementor and elementor pro.

    Initial signs pointed to a setting, theme, or plugin conflict inside Elementor or interference with elementor’s javascript.

    What We Found

    • Elementor Experiments Were Active
      We reviewed the settings under elementor → features. Changing these between default, active, and inactive didn’t solve the issue. Versions of elementor and elementor pro were checked, and the editor loader method was switched to test if the editor to load issue could be resolved.
    • Conflict With Container Layout
      Disabling Elementor’s Container feature fixed the loading problem—but wiped the page content. Cloudflare’s rocket loader or preloader settings can sometimes interfere with elementor’s javascript, causing the editor to fail.
    • The Real Culprit: Icon List Widget
      We isolated the issue to Elementor’s built-in icon list widget. Disabling it from the element manager let the editor load again without deleting content. The standard elementor widgets, including this widget.

    How We Fixed It

    1. Cloned the Site to Staging
      So we could safely test settings without affecting the live version. Using a staging site is safer to resolve the issue without risking the wordpress dashboard or live content.
    1. Disabled the Container Feature
      This restored editor access, but temporarily removed the draft’s content. Low php memory or third-party plugins may also cause the editor not loading issue.
    1. Pinpointed the Problem Widget
      We tested individual widgets and found that the icon list was causing the crash. Selecting safe mode, deactivating plugins.
    1. Disabled the Icon List
      After turning off just this widget, both the live and test pages loaded perfectly in the editor.

    What Changed After the Fix

    • Elementor editor loads on both test and live homepages
    • No content was lost or deleted
    • Editor is slightly faster (but may still lag on heavy pages)

    Lessons Learned

    • Don’t overlook Elementor’s built-in widgets — even standard elements can cause crashes when combined with certain features
    • Use staging to test — always safer to run experiments outside of your live site
    • Container layouts aren’t always stable — disabling them temporarily can help isolate the issue
    • Performance matters — large pages with complex layouts can still affect editor speed

    Need Elementor Help?

     If Elementor is freezing, glitching, or making your pages disappear—let’s fix it before it affects your workflow. Ways to fix elementor editor not loading issues include checking third-party add-ons, wordpress theme conflicts, plugin conflict resolution, or switching the editor loader method.

    Frequently Asked Questions (Troubleshooting Elementor Editor Not Loading (Without Losing Content)

    How to fix Elementor editor not loading?

    To fix Elementor editor not loading, clear your browser and WordPress cache, increase PHP memory limit, and ensure WordPress, Elementor, and your theme are updated. Deactivate conflicting plugins and switch to a default theme to test. Also, enable safe mode in Elementor to isolate issues.

    How to fix Elementor can’t edit?

    If Elementor can’t edit, first clear your browser and WordPress cache. Increase PHP memory limit and check for plugin or theme conflicts by deactivating them temporarily. Ensure Elementor and WordPress are updated. Enabling Elementor’s safe mode can help identify the issue and restore editing functionality.

    How to troubleshoot Elementor?

    To troubleshoot Elementor, clear your browser and site cache, increase PHP memory limit, and update WordPress, Elementor, and your theme. Deactivate plugins one by one to find conflicts, switch to a default theme to test, and enable Elementor’s safe mode to isolate and resolve issues effectively.

    How to clear Elementor cache?

    To clear Elementor cache, go to Elementor → Tools in your WordPress dashboard. Click “Regenerate CSS” and “Sync Library,” then clear your browser cache. If you use a caching plugin, also clear its cache. This ensures your changes appear correctly on the frontend and editor.

  • Understanding miniOrange REST API Warnings in WordPress

    Issue Overview

    A site admin noticed a security alert from the miniOrange plugin:

    “Alert: 2390 unrestricted APIs accessed. Each one could be an open door to vulnerabilities…”

    Despite the alarming tone, there were no signs of suspicious activity or vulnerabilities on the site.

    Our Findings

    Alert Context

    The alert was part of miniOrange’s upsell strategy—aimed at promoting premium features rather than flagging actual risk.

    Secure Endpoints

    All custom REST APIs were protected. Only internal miniOrange endpoints remained open, which is expected for plugin functionality.

    ️ No Data at Risk

    No sensitive or public-facing data was exposed. No unusual traffic or breach indicators were detected.

    ✅ Safe to Ignore

    Freshy confirmed that the current configuration was secure, and the alert did not require action unless the client wanted premium features.

    Outcome

    The warning was classified as non-critical and marketing-driven. No plugin changes were necessary, and REST API access remained secure as configured.

    Unsure About Plugin Warnings?

    At Integriti Studio, we separate real threats from exaggerated alerts. Let us review your WordPress setup and lock down what actually matters.

    Get a Security Audit →

    Frequently Asked Questions (Understanding miniOrange REST API Warnings in WordPress)

    How to fix rest API error in WordPress?

    To fix a WordPress REST API error, resave permalinks, temporarily disable caching and security plugins, check your PHP version and memory limit, reset the .htaccess file, and test for plugin or theme conflicts by deactivating plugins one by one and switching to a default theme.

    How to check if rest API is enabled in WordPress?

    To check whether the WordPress REST API is enabled, open your browser and go to yourwebsite.com/wp-json/. If the page displays JSON data or available routes, the REST API is working. If you see an error, it may be disabled by a plugin, theme, or server settings.

    How to secure WordPress rest API?

    To secure the WordPress REST API, restrict public endpoints, require authentication for sensitive routes, and disable unused endpoints using plugins or custom code. Use HTTPS, keep WordPress and plugins updated, apply proper user roles, and protect the site with a firewall or security plugin.

    How does the WordPress rest API work?

    The WordPress REST API works by exposing site data through JSON endpoints like /wp-json/. It lets external apps, themes, and plugins send GET, POST, PUT, or DELETE requests to read or update content. Authentication controls access to protected data and actions.

  • How to Troubleshoot Missing UTM Tracking in GA4 & Google Tag Manager

    The Problem: UTM Parameters Missing in GA4

    A client reached out when they noticed that their UTM-tagged campaign URLs were no longer showing up in their Google Analytics reports. Both old and new UTM links failed to populate traffic source fields like Source, Medium, or Campaign.

    Initial concerns pointed toward possible misconfigurations in their GTM setup or broken integration between GTM and GA4.

    What We Found

    After digging into the tracking setup, here’s what we discovered:

    • GTM was installed—but inactive
      The GTM container was embedded on the site, but had no active tags or triggers configured. In short, GTM wasn’t being used for any analytics functions.
    • GA4 was running independently
      Google Analytics was tracking events, sessions, and conversions—but it wasn’t doing so through GTM.
    • UTM parameters were never routed through GTM
      The client had assumed GTM was handling tracking. In reality, UTM tags are captured natively by GA4 and don’t require GTM at all.

    Need help reviewing your GA4 or GTM setup? Book a free audit call.

    How We Fixed It

    With a clearer picture in place, we walked the client through a few simple but important checks:

    ✅ Confirmed GA4 was tracking UTM data

    We tested UTM-tagged links using Google’s Realtime Reports. The UTM parameters (source, medium, campaign) showed up immediately.

    ✅ Reviewed historical campaign traffic

    Looking back four months, we found limited use of UTM-tagged URLs—confirming it wasn’t a tracking failure but a lack of consistent campaign tagging.

    ✅ Verified new campaigns

    The client shared a fresh UTM URL. We tested it live and confirmed that Session Source, Session Medium, and Campaign Name all showed up correctly in GA4.

    Want to be 100% sure your UTM tracking is working? Let’s test it together.

    What You Should Know

    UTM tracking confusion is common, especially when multiple tools (like GA4, GTM, and CRM systems) are in play. Here’s what matters:

    • UTM tags are read directly by GA4
      You don’t need Google Tag Manager to track campaign parameters like source, medium, or campaign name.
    • Use GA4’s Realtime Report for testing
      It’s the fastest way to confirm whether UTM-tagged links are being tracked properly.
    • Keep GTM clean and purposeful
      If you’re not actively using GTM for event tracking, don’t assume it’s capturing campaign data.
    • Be consistent with UTM usage
      Inconsistent tagging often looks like “missing data” when it’s actually just incomplete link building.

    Need a UTM strategy that works across platforms? Let’s build it →

    Final Outcome

    No broken tools. No bugs. Just a bit of miscommunication. After clarifying how their setup worked, the client was relieved to see their campaign data flowing correctly—and now has a direct report to track UTM-tagged traffic in real time.

    Struggling with Google Analytics or Tag Manager?

    ‍
    Integriti Studio can help you streamline campaign tracking, build custom dashboards, and troubleshoot analytics confusion—whether you’re using Shopify, WordPress, or Webflow.

    ‍

  • How to pre-fill wordpress forms using QR codes & URL parameters

    Issue Background

    ‍
    Imagine this: Your team is out in the field distributing flyers with QR codes. Each QR code should lead to a contact form, pre-filled with the name of the rep who gave it to the lead. That way, no manual data entry—and every lead is attributed to the right person or campaign.

    Example link behind the QR code:
    https://yoursite.com/offer/?salesperson=Alex%20Smith

    When the prospect scans the code, the salesperson’s name appears in a hidden field. Neat, right?

    How It Works

    ‍
    ✅ URL parameters carry hidden data from the QR code directly into the form.
    ✅ That data pre-fills a field on the form—visible or hidden.
    ✅ When the form is submitted, the lead is automatically assigned to the correct sales rep or campaign.

    Resolution Steps

    Step 1: Create a Hidden Form Field

    ‍
    ➡ Choose your form plugin (Gravity Forms, WPForms, Ninja Forms).
    ➡ Add a Hidden field and name it Sales Rep or Campaign Source.

    Step 2: Turn On Dynamic Population

    ‍
    ➡ In the form settings, turn on Dynamic Population.
    ➡ Set the parameter name as salesperson.

    Step 3: Generate QR Codes with URLs

    ‍
    ➡ Create one link per rep:
    https://yoursite.com/offer/?salesperson=Alex%20Smith
    ➡ Use any free QR code generator to turn these URLs into scannable QR codes.

    Step 4 (Optional): Hide or Lock the Field

    ‍
    ➡ If you don’t want users to change the value, use a Hidden Field or set it to read-only.

    Pro Tip: You can even use this dynamic value in confirmation emails or thank-you pages, like:
    “Thanks! Your request has been sent to Alex Smith.”

    Final Outcome

    • ✅ Sales rep names filled in automatically.
    • ✅ No missed leads or manual errors.
    • ✅ Marketing attribution made easy and fully trackable.

    Why This Works

    • Works across campaigns, QR codes, emails, social links.
    • Makes lead collection easier, faster, cleaner.
    • No need for custom dev or expensive plugins.

    ‍

  • How to redirect PDF files in WordPress without breaking old links

    Issue Background

    A client needed to update a PDF stored in their Media Library. The problem? Changing the filename would break every instance where that file had been shared, including old URLs and direct links on their website or other web pages.

    For example:
    ❌ Old PDF URL: /wp-content/uploads/2024/02/old-document.pdf
    ✅ New PDF URL: /wp-content/uploads/2025/03/updated-document-v2.pdf

    Most WordPress hosts and FTP servers would not process redirects for static files like PDFs. Redirects usually work for pages, posts, or attachment pages, but not media assets directly.

    Diagnosis

    ‍
    Standard redirect plugins, server settings, or regular expression rules couldn’t handle this scenario. The fix required a creative solution at the server and WordPress level—one that works with WordPress, handles PDF file URLs, preserves SEO, and allows visitors to access the new PDF automatically.

    Solution

    ✔️ Step 1: Rename the Old File

    ‍
    Using SFTP, FTP, or your hosting file manager, locate the original PDF in the upload folder and rename it, like this: old-document-old.pdf

    ✔️ Step 2: Create a “Fake” Directory

    ‍
    Inside the same folder, create a directory using the exact same name as the old file (yes—with the .pdf extension): /wp-content/uploads/2024/02/old-document.pdf/

    ✔️ Step 3: Add a Redirect File

    ‍
    In that new folder, create an index.php file containing this redirect code:

    php

    CopyEdit

    <?php
    header(“HTTP/1.1 301 Moved Permanently”);
    header(“Location: /wp-content/uploads/2025/03/updated-document-v2.pdf”);
    exit();
    ?>

    Now, whenever someone clicks the old PDF link, they’ll land on your new, updated version automatically.

    Why It Works

    ‍
    ➡️ Browsers try to load /old-document.pdf but find a folder instead.
    ➡️ That folder serves the index.php, which executes a 301 redirect to your new file.
    ➡️ No broken links. No SEO losses. Just clean user experience.

    Final Outcome

    ‍
    ✔ No need to manually update old links on your website—or anywhere else.
    ✔ Users go directly to your new document.
    ✔ Search engines respect the 301 redirect, maintaining SEO continuity.

    ‍