WP Manifestindependent plugin directory
manifest / ecommerce / tmsm-woocommerce-booking-thalasso

TMSM WooCommerce Booking Thalasso

tmsm-woocommerce-booking-thalasso

by Nicolas Mollet · github.com/thermesmarins/tmsm-woocommerce-booking-thalasso · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/thermesmarins/tmsm-woocommerce-booking-thalasso/archive/refs/heads/master.zip

Declares an update source (https://github.com/thermesmarins/tmsm-woocommerce-booking-thalasso), so updates arrive through the plugin's own updater.

Readme

TMSM WooCommerce Booking Thalasso

WooCommerce Booking Thalasso for Thermes Marins de Saint-Malo

Features

Requires Advanced Custom Fields Pro v5.3.7+

  • Register Post Types:
    • Accommodation
    • Package
    • Discovery
    • Spa Treatment
  • Register Taxonomies:
    • Accommodation Type
    • Package Type
    • Trip Type
    • Discovery Type
    • Spa Treatment Type
  • ACF Fields for the 4 Custom Post Types
  • Elementor Custom Query "accommodationpackage_price"
  • Elementor Custom Query "accommodationpackage_price"
  • Polylang translation settings for every ACF field (sync or translate), plus a fix for ACF taxonomy fields not being synchronized to translations (see below)

Polylang / ACF translation sync

Requires Polylang Pro.

Every ACF field registered by this plugin declares a translations setting (sync or translate) so Polylang Pro knows how to handle it across languages:

  • translate: editorial content, translated independently per language (descriptions, addresses, pitch, URLs, etc.).
  • sync: factual data that must stay identical across languages (phone, price, stars, dates, taxonomies, etc.) — automatically pushed to every translation whenever the field is saved.

Known ACF/Polylang conflict and its fix

ACF Pro batches wp_set_object_terms() calls for taxonomy-type fields in a single request-wide queue and flushes it, on acf/save_post, against the post ID of the currently submitted post only. When Polylang Pro's ACF integration pushes a sync taxonomy field value to a translation mid-save, ACF queues that translation's terms too, but flushes them onto the source post instead — the translation's ACF postmeta ends up correct, but the taxonomy assignment itself never reaches the database.

Tmsm_Woocommerce_Booking_Thalasso_Admin::acf_fix_synced_taxonomy_fields() (hooked on acf/save_post, priority 20) works around this: it re-applies the sync taxonomy fields' terms directly to every translation, translating the term via pll_get_term() for taxonomies registered as translated in Polylang (Accommodation/Package/Trip/Discovery/Spa Treatment Type), or copying the raw term ID for taxonomies that are not (Duration, Objective). It never removes a term assigned to a translation independently of the field (e.g. via the native taxonomy metabox) — it only touches what it previously pushed itself, tracked in a private _pll_acf_sync_{field_key} post meta.

"Synchronize this post" button hidden

Polylang Pro's own "Synchronize this post" button (the repeat-icon toggle in the language metabox) is hidden on the 4 custom post types via Tmsm_Woocommerce_Booking_Thalasso_Admin::acf_hide_sync_post_button() (hooked on admin_head). That button copies every custom field verbatim to the translation, ignoring each field's translations setting — enabling it would silently overwrite translate fields (descriptions, addresses, etc.) with the source language's content. It is hidden with CSS rather than Polylang's own settings, to avoid touching Polylang Pro's code.

Read the full README on GitHub →

Releases

TagPublished
1.2.11 Jul 9, 2026
1.2.10 Feb 10, 2026
1.2.9 Jan 26, 2026
1.2.8 Dec 30, 2025
1.2.7 Dec 16, 2025
1.2.6 Dec 15, 2025
1.2.5 Oct 28, 2025
1.2.4 Jun 3, 2025
1.2.3 Jun 3, 2025
1.2.2 Mar 25, 2025
1.2.1 May 6, 2024
1.2.0 Jan 5, 2023
1.1.21 Apr 11, 2022
1.1.20 Nov 23, 2021
1.1.19 Jan 14, 2020
1.1.18 Dec 5, 2019
1.1.17 Aug 7, 2019
1.1.16 Jun 17, 2019
1.1.15 Jun 17, 2019
1.1.14 Jun 13, 2019
1.1.13 Mar 29, 2019
1.1.12 Nov 2, 2018
1.1.11 Oct 19, 2018
1.1.10 Oct 18, 2018
1.1.9 Oct 17, 2018

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.