Tag: Third-Party XML Integration

  • Case Study 6: Fixing a Kiyoh XML Review Feed After a PHP 8.3 Upgrade

    From Custom XML Feed to Production Review Integration

    A WordPress XML/RSS project can sometimes evolve far beyond the original requirement. This case started with a relatively simple RSS feed problem and eventually became a custom XML integration for displaying Kiyoh customer reviews on a WordPress website.

    The project involved multiple websites, custom XML processing, a WordPress plugin, external review data, and eventually a compatibility issue following a PHP 8.3 upgrade.

    The Initial RSS Feed Problem

    The project originally started in May 2024 when the client needed help creating an RSS feed for jonglogistiek.nl.

    The client had already created an RSS feed using RSS.app, but several important fields were not being generated correctly:

    • Some posts were missing their publishing date.
    • Some posts had no image.
    • The description was incorrect.
    • The client wanted the first paragraph of each post to appear in the feed.
    • A “Lees meer” (Read more) link was required after the introductory text.

    The existing RSS.app feed was provided for reference, and a custom WordPress plugin was developed to generate the required RSS feed.

    Expanding the Requirement: Custom XML

    Shortly afterward, the client asked whether the service was limited to RSS feeds or whether other XML formats could also be created.

    The requirement turned out to be completely different from the original RSS project.

    The client was building a website for Boender Outdoor and wanted to display Kiyoh customer reviews on the website. Kiyoh provided review information through an XML feed, and the client wanted functionality similar to another website that was already displaying reviews using XML data.

    The goal was to make the review information available on:

    boenderoutdoor.nl/reviews

    The client subsequently provided the Kiyoh XML feed URL and confirmed that the requirement was to import the review feed and display it on the website.

    Reading the External XML Feed

    After analyzing the requirement, the technical approach was straightforward:

    1. Retrieve the XML feed from Kiyoh.
    2. Read and process the review data.
    3. Make the review information available inside WordPress.
    4. Display the reviews on the client’s website.
    5. Allow the website’s existing design to control the presentation.

    The client already had a design in mind, so the implementation focused primarily on processing the XML data rather than creating a new review interface from scratch.

    This distinction is important in XML integrations: data processing and front-end presentation are often separate layers. A reliable feed integration should first make sure that the external data can be retrieved and interpreted correctly before worrying about styling.

    A Production Issue Six Months Later

    The project returned in December 2024 when the client reported that the original XML feed on Jonglogistiek.nl had stopped working.

    The timing was critical because the client was preparing to launch an app that depended on the XML feed that same day.

    The client provided access, and the issue was fixed quickly.

    The feed URL remained:

    jonglogistiek.nl/rssfeed.xml

    After confirming that the feed was working again, the client placed an order for the fix.

    This was an example of an important characteristic of XML integrations: the feed URL itself can become part of another application’s infrastructure. Once an app, portal, or external service depends on a feed, keeping that endpoint operational becomes important.

    The PHP 8.3 Compatibility Problem

    The next major issue appeared in August 2025.

    The client upgraded the Boender Outdoor website to PHP 8.3, after which the Kiyoh review integration stopped displaying reviews correctly.

    The client explained that a custom plugin was responsible for retrieving and processing Kiyoh’s XML feed hourly. The plugin provided shortcodes for displaying review statistics and reviews throughout the website.

    Interestingly, some parts of the integration were still working.

    The client reported that the review information at the top of the page was working, while another section displayed:

    “Geen reviews gevonden”

    meaning “No reviews found.”

    The client wanted the review widget on the reviews page restored to its previous working state.

    Diagnosing a Live WordPress Website

    Because the website was live, the repair needed to be handled carefully.

    Access initially became a challenge. The supplied WordPress credentials did not work, and the client encountered login problems as well. The client eventually disabled the firewall and provided working access, allowing the troubleshooting process to continue.

    Once access was available, the focus was narrowed to the existing Kiyoh Review Verwerker plugin.

    The client specifically clarified that:

    • The existing styling was already correct.
    • The plugin was already responsible for the XML functionality.
    • The problem was that reviews were no longer being loaded on the reviews page.
    • The desired presentation should remain unchanged.

    This made the task a targeted compatibility/debugging job rather than a complete rebuild.

    Restoring the Review Display

    The existing review system was investigated and the review display issue was fixed.

    The client had also requested that the reviews remain limited to 25 reviews per page. During the fix, it was confirmed that this limit was already configured, so no additional change was necessary for that requirement.

    The client was informed that the issue had been fixed and was directed to the reviews page for verification.

    The Technical Lesson

    This project demonstrates why upgrading PHP versions on WordPress websites can expose problems in older custom integrations.

    A site can appear to be functioning normally while a particular data-processing component silently stops working. In this case, the website’s styling and surrounding review interface were still present, but the external XML review data was no longer being displayed correctly.

    Rather than rebuilding the entire system, the better approach was to:

    • Identify the failing component.
    • Preserve the existing design.
    • Preserve the existing plugin architecture where possible.
    • Check the external XML source.
    • Investigate the data-processing path.
    • Restore the review output.
    • Verify the existing pagination requirement.

    What This Project Shows

    This project involved several different types of WordPress XML work over time:

    1. Custom RSS feed development

    A standard RSS service was not producing the required post data, so a custom WordPress feed was created.

    2. Custom XML integration

    The requirement expanded into processing an external Kiyoh XML review feed.

    3. WordPress plugin development

    The XML processing was integrated into a custom WordPress plugin with shortcodes for displaying review information.

    4. External data retrieval

    The website depended on XML data supplied by an external review platform.

    5. PHP compatibility troubleshooting

    After a PHP 8.3 upgrade, the review display stopped functioning correctly and required debugging.

    6. Production maintenance

    The issue was resolved on a live website while keeping the existing styling and functionality intact.

    Conclusion

    What began as a simple RSS feed requirement eventually became a longer-term XML integration and maintenance relationship.

    The project illustrates an important principle in WordPress XML development:

    A feed is not just an XML document—it can become a critical data bridge between WordPress, external platforms, widgets, and applications.

    When that bridge stops working because of a PHP upgrade, changes in external XML data, or plugin compatibility issues, the solution requires more than simply checking whether the XML file exists. The complete flow—from external data retrieval to WordPress processing and final display—needs to be examined.

    This case is a good example of how custom XML development can evolve into ongoing integration, troubleshooting, and maintenance work.