CSS Class Map
CSS class map Every class the plugin renders is prefixed osfec- and follows BEM: block__element--modifier. The outermost element of every component also carries the…
CSS class map Every class the plugin renders is prefixed osfec- and follows BEM: block__element--modifier. The outermost element of every component also carries the…
Building a custom UI When the bundled templates are the wrong starting point, ignore them. Offers are ordinary posts, so anything you can build…
Data model reference The plugin creates no database tables and no taxonomies. Everything lives in wp_posts, wp_postmeta and a handful of options. Post type…
Installation and first run Requirements WordPress 6.0 or newer PHP 7.4 or newer An Esti CRM client API account: a company identifier and an…
What the plugin does Esti To WordPress pulls real estate offers from an Esti CRM account and publishes them on a WordPress site: an…
PHP API: the osfec_* functions These functions are the plugin's public API. They live in includes/functions.php, load on plugins_loaded and are available anywhere in…
Publishing offers on your site Once offers are imported, three things exist without any work on your part: The archive — every offer, with…
Settings reference All settings live under Esti To WordPress → Settings, split across four tabs. Each tab saves on its own — pressing Save…
Shortcode and block reference The [osfec_offers] shortcode and the Offers block render through exactly the same code, so they accept the same options and…
Styling without touching templates The plugin ships one stylesheet, assets/css/frontend.css, enqueued as osfec-frontend. It loads on the offer archive, on single offers, and wherever…
Synchronization and the sync log How a run works A synchronization is not one long request. It is a chain of background steps, which…
Overriding templates The plugin ships six templates. Any of them can be replaced from the theme, and the plugin never touches your copy again.…