<?php
/**
* L'Or des Plantes — Functions
*/
// 1. Enqueue styles
add_action('wp_enqueue_scripts', function() {
wp_enqueue_style('lodp-style', get_stylesheet_uri(), array('generate-style'), '1.0.5');
});
// 2. Pas de sidebar nulle part
add_filter('generate_sidebar_layout', function() {
return 'no-sidebar';
});
add_action('widgets_init', function() {
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Search');
}, 1);
// 3. Custom footer
remove_action('generate_footer', 'generate_construct_footer');
add_filter('generate_copyright', '__return_empty_string');
add_action('generate_after_footer', function() {
?>
<footer class="lodp-footer">
<div class="lodp-footer-grid">
<div>
<img src="<?php echo get_stylesheet_directory_uri(); ?>/logo.svg" alt="L'Or des Plantes" style="height:36px;margin-bottom:12px" onerror="this.style.display='none'">
<p style="color:var(--text-secondary);font-size:14px;line-height:1.6">Herboristerie ambulante depuis 1980.<br>Atelier : Sauve (30610), Gard<br>Marchés du Gard & Hérault</p>
</div>
<div><h4>Navigation</h4><a href="/">Accueil</a><a href="/boutique/">Boutique</a><a href="/histoire/">Notre histoire</a><a href="/contact/">Contact</a></div>
<div><h4>Catégories</h4><a href="/categorie-produit/herboristerie-vrac-wcparticulier/">Herboristerie</a><a href="/categorie-produit/epices-wcparticulier/">Épices</a><a href="/categorie-produit/tisanes/">Tisanes</a><a href="/categorie-produit/cosmetiques/">Cosmétiques</a></div>
<div><h4>Infos</h4><a href="/ou-nous-trouver/">Où nous trouver</a><a href="/contact/">Contact</a></div>
</div>
<div class="footer-bottom">© <?php echo date('Y'); ?> L'Or des Plantes. Tous droits réservés.</div>
</footer>
<?php
});
// 4. Search overlay + JS
add_action('wp_footer', function() {
?>
<div class="lodp-search-overlay" id="lodp-search-overlay">
<button class="lodp-search-close" id="lodp-search-close" aria-label="Fermer"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg></button>
<div class="lodp-search-overlay-inner">
<form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>">
<input type="search" name="s" placeholder="Rechercher un produit..." autocomplete="off" id="lodp-search-input">
<input type="hidden" name="post_type" value="product">
<button type="submit" aria-label="Rechercher"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></button>
</form>
<div class="lodp-search-hint">Entrée pour rechercher · Échap pour fermer</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded',function(){
var t=document.getElementById('lodp-search-trigger'),o=document.getElementById('lodp-search-overlay'),c=document.getElementById('lodp-search-close'),i=document.getElementById('lodp-search-input');
if(t&&o){t.addEventListener('click',function(e){e.preventDefault();o.classList.add('open');setTimeout(function(){if(i)i.focus();},300);});}
if(c&&o){c.addEventListener('click',function(){o.classList.remove('open');});o.addEventListener('click',function(e){if(e.target===o)o.classList.remove('open');});}
document.addEventListener('keydown',function(e){if(e.key==='Escape'&&o&&o.classList.contains('open'))o.classList.remove('open');});
var h=document.querySelector('.lodp-hamburger'),n=document.querySelector('.lodp-nav'),ic=document.querySelector('.lodp-header-icons');
if(h&&n){h.addEventListener('click',function(){this.classList.toggle('open');n.classList.toggle('open');if(ic)ic.classList.toggle('open');});}
});
</script>
<?php
});
// 5. Exclure catégories techniques (sync Dolibarr)
add_filter('get_terms', function($terms, $taxonomy) {
// $taxonomy can be array or string
$taxes = is_array($taxonomy) ? $taxonomy : array($taxonomy);
if (!in_array('product_cat', $taxes)) return $terms;
$exclude = array('certification-bio','certification-bio-2','certification-bio-3','wcparticulier','wp-archive','non-classe-wcparticulier');
return array_filter($terms, function($t) use ($exclude) {
return !in_array($t->slug, $exclude);
});
}, 10, 2);
// 6. Full width front page
add_filter('generate_container_class', function($classes) {
if (is_front_page()) $classes[] = 'full-width';
return $classes;
});
// 7. Assigner les templates aux pages
add_filter('template_include', function($template) {
$templates = array(
'histoire' => 'page-histoire.php',
'contact' => 'page-contact.php',
'equipe' => 'page-equipe.php',
'ou-nous-trouver' => 'page-trouver.php',
);
foreach ($templates as $slug => $file) {
if (is_page($slug)) {
$tpl = get_stylesheet_directory() . '/' . $file;
if (file_exists($tpl)) return $tpl;
}
}
return $template;
});
// 8. Supprimer les sideblogs restants
add_action('widgets_init', function() {
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Search');
}, 1);
}
return $html;
}, 10, 2);
}
return $html;
}, 10, 2);
// Affiche le badge Certification Bio
add_filter('woocommerce_product_get_image', function($html, $product) {
if ($product && $product->get_meta('_certification_bio') === '1') {
$badge = ' ';
$html = str_replace('
octobre 2025 - L'Or des Plantes
Le champ est habillé d’une rose robe, aujourd’hui de ses couleurs je m’enrobe, ta douce drapure guide mes lettres, mes mots s’élançant qu’éclose ta rose, elle, si proche, là où est ton être, « aimé je le prie : ose le grandiose » c’est ce qui se dit sous mes paupières closes.
J’édifie notre union, en silence, dans le cœur de mon cœur, cet intime lieu sacré, où j’apprends à t’aimer, en secret.
Grandir, en acceptant son insolitude, en réouvrant “la Porte-menant-en-Haut,” suivant ce qu’offre “Ses Invisibles-Mots,” accueillant Leurs forces, Leur immensitude, car au coeur de nos efforts, seul avec Eux victoire sur notre vil triomphera. Qui sont-ils ? Là est bien notre ultime choix, choir ou trouver réponse à ce merveilleux.
Apocalyptique paysage. Le rebond des cœurs s’envisage, pour ceux qui aiment et s’émerveillent, les cieux sèment l’appel au creux des mots de l’inconnu, ouvrant les voies de l’imprévu.
Porter Courage en étendard, poser Vérité sur les peurs, apposer Beauté sur les cœurs, apporter nos glorieuses Victoires.
Le vent se fait parfois ouragan, ou caresse pendant tout un temps, quand, transportant de notre continent, mots de vérités par ses courants. Dans ces présences que l’on ressent, son silence est d’autant plus parlant.
Chaque humain peut être une source d’inspiration et chaque partie de l’autre une clé pour soi, tu as été inspirant de mille façons, et tu as été ma clef de nombreuses fois.
Nos regards se croisant sous ces cieux, Depuis, bien des mots ont été dit, A nous d’y insuffler toute vie, Que nos actes en scellent le merveilleux.
Le temps d’un instant, lui offrir mon temps, réduisant sa peine, que meure la haine, grâce à ma voix pleine, d’un simple je t’aime.
Je suis tel l’orfèvre taillant diamant, Patience et précision pendant longtemps, Raffinant ton joyau durant des heures Au centre des profondeurs de mon être, Pour qu’au monde tu dévoiles ton cœur, Sans nuls vices et sans nul paraître, Qu’au creux des yeux se posent ta splendeur, Eveillant le vœu de demains meilleurs, Car plus je … Lire la suite