<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - WordPress</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur le script de CMS et Blogs WordPress.]]></description>
		<language>fr</language>
		<lastBuildDate>Sat, 18 Apr 2026 20:45:18 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - WordPress</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>WordPress a annoncé la sortie de la version 1.7 de WordPress Studio, une solution gratuite et open source</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181800&amp;goto=newpost</link>
			<pubDate>Thu, 29 Jan 2026 17:34:38 GMT</pubDate>
			<description>*WordPress a annoncé la...</description>
			<content:encoded><![CDATA[<div><b><font size="4">WordPress a annoncé la sortie de WordPress Studio 1.7, une solution gratuite et open source pour le développement WordPress local, apportant des améliorations majeures de l'interface de ligne de commande (CLI)</font></b><br />
<br />
<b>WordPress a annoncé la sortie de la version 1.7 de WordPress Studio, une mise à jour majeure de cette solution gratuite et open source pour le développement local de WordPress sur Mac et Windows. Cette mise à jour se concentre sur des améliorations majeures de l'interface de ligne de commande (CLI). Avec WordPress Studio 1.7, les développeurs peuvent désormais gérer entièrement les sites locaux à partir du terminal. La CLI mise à jour introduit de nouveaux outils puissants pour la gestion des sites de prévisualisation.</b><br />
<br />
WordPress a annoncé la sortie de la version 1.7 de WordPress Studio, une mise à jour majeure de cette solution gratuite et open source pour le développement local de WordPress sur Mac et Windows. Cette mise à jour se concentre sur des améliorations majeures de l'interface de ligne de commande (CLI), apportant quatre améliorations clés qui rationalisent le flux de travail de développement.<br />
<br />
Avec WordPress Studio 1.7, les développeurs peuvent désormais gérer entièrement les sites locaux à partir du terminal. La CLI permet aux utilisateurs de créer de nouveaux sites, de surveiller leur état, de les démarrer ou de les arrêter, et de gérer le nettoyage directement à partir de la ligne de commande. Sur cette base, des commandes dédiées |studio auth ont été ajoutées, permettant la gestion des fonctionnalités nécessitant une authentification sans quitter l'environnement du terminal.<br />
<br />
Suite à cela, la CLI mise à jour introduit de nouveaux outils puissants pour la gestion des sites de prévisualisation. Ces sites de prévisualisation sont des environnements WordPress temporaires et partageables, hébergés à distance, qui peuvent désormais être entièrement gérés via de nouvelles options de ligne de commande. De plus, WP-CLI est désormais intégré via une nouvelle commande studio wp, ce qui évite d'avoir à installer et configurer WP-CLI séparément.<br />
<br />
Il convient de noter que la CLI améliorée est conçue pour s'intégrer en toute transparence aux workflows de développement assistés par l'IA utilisant des outils tels que Claude Code et Cursor. Ces agents peuvent lire le code du projet et exécuter des commandes dans des environnements locaux, ce qui permet une automatisation avancée. La mise à jour améliore les capacités de script et d'automatisation de WordPress Studio pour les tâches de développement quotidiennes.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/wxBXWmo2oV0?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b><font size="3">Qu'est-ce qu'une CLI ?</font></b><br />
<br />
Une CLI (interface de ligne de commande) vous permet de contrôler des outils et des applications en tapant des commandes dans un terminal, au lieu de cliquer dans des menus. Les développeurs ont tendance à apprécier les CLI, car elles sont :<br />
<br />
- Rapides : lancez, modifiez ou supprimez des environnements à l'aide d'une seule commande.<br />
- Répétables : exécutez les mêmes commandes sur n'importe quelle machine ou intégrez-les dans des scripts.<br />
- Automatisables : laissez les systèmes de construction et les agents IA exécuter des commandes à votre place.<br />
<br />
Même si vous ne travaillez généralement pas dans le terminal, l'interface CLI de Studio mérite votre attention. <br />
<br />
Il s'agit du « langage » commun que les outils d'automatisation peuvent utiliser pour interagir avec Studio. Une fois activée, votre éditeur, vos scripts ou vos assistants de codage IA peuvent effectuer des tâches telles que créer un nouveau site, exécuter des mises à niveau de base de données ou publier un aperçu sans que vous ayez à naviguer entre plusieurs écrans dans l'application Studio.<br />
<br />
Dans Studio 1.7.0, la CLI couvre désormais quatre domaines principaux :<br />
<br />
- Authentification : gérez votre compte WordPress.com pour les fonctionnalités qui l'exigent.<br />
- Aperçu des sites : créez et mettez à jour des sites d'aperçu hébergés par WordPress.com.<br />
- Gestion des sites locaux : créez, démarrez, arrêtez, configurez et supprimez des sites locaux gérés par Studio.<br />
- Intégration WP-CLI : exécutez des commandes WP-CLI dans des environnements Studio correctement configurés, sans avoir à installer WP-CLI vous-même.<br />
<br />
Vous pouvez obtenir un aperçu à tout moment en exécutant <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">studio --help</span> :<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p673749d1769755106/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 7841
Taille : 27,1 Ko"  style="float: CONFIG" /></div><br />
<b><font size="3">Gestion des sites Studio locaux</font></b><br />
<br />
L'une des principales améliorations de Studio CLI v2 est la gestion locale de bout en bout des sites à partir du terminal.  Plutôt que de revenir à l'interface utilisateur Studio pour les tâches courantes, vous pouvez créer un site, vérifier son état, le démarrer ou l'arrêter, et le nettoyer lorsque vous avez terminé. <br />
<br />
Cela accélère le flux de travail quotidien et facilite considérablement l'automatisation, que vous écriviez vous-même des scripts ou que vous utilisiez un agent IA pour le faire à votre place.<br />
<br />
Au cœur de tout cela se trouve la commande studio site. Les options disponibles sont les suivantes :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0">studio site status    <span style="color: #339933;"># Get status of site</span>
studio site create    <span style="color: #339933;"># Create a new site</span>
studio site <span style="color: #0000ff;">list</span>      <span style="color: #339933;"># List sites</span>
studio site start     <span style="color: #339933;"># Start site</span>
studio site stop      <span style="color: #339933;"># Stop site(s)</span>
studio site delete    <span style="color: #339933;"># Delete site</span>
studio site set       <span style="color: #339933;"># Configure site settings</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b>Créer des sites locaux à l'aide d'une seule commande</b><br />
<br />
Utilisez <b>studio site create</b> pour créer un nouveau site dans votre répertoire actuel ou à un emplacement spécifique. Voici quelques exemples de ce que vous pouvez faire :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;"># Create a new site with default options in the current folder</span>
studio site create
<span style="color: #339933;"># Create a new site with a custom domain and HTTPS</span>
studio site create --https --domain hello.wp.local
<span style="color: #339933;"># Create a site in a different directory</span>
studio site create --path /path/to/site</pre></td></tr></table></code><hr />
</div><br />
<br />
La CLI va :<br />
<br />
- Configurer un environnement WordPress local.<br />
- Démarrer le serveur WordPress.<br />
- Ouvrir WP Admin dans votre navigateur lorsqu'il est prêt.<br />
<br />
Vous pouvez exécuter cette commande à partir d'un dossier vide ou d'un répertoire contenant déjà un site WordPress qui n'est pas encore enregistré dans l'application Studio.<br />
<br />
<b><font size="3">Authentification à partir du terminal</font></b><br />
<br />
Certaines fonctionnalités de Studio, telles que la création ou la mise à jour de sites de prévisualisation, nécessitent un compte WordPress.com connecté. <br />
<br />
Studio CLI v2 vous offre des commandes d'authentification Studio dédiées afin que vous puissiez gérer cela depuis le terminal :<br />
<br />
- <b>studio auth login</b> lance un flux de navigateur et vous donne un jeton à coller dans votre terminal pour terminer la connexion.<br />
- <b>studio auth status</b> vous indique si vous êtes authentifié et quel compte est actif.<br />
- <b>studio auth logout</b> déconnecte la CLI de votre compte WordPress.com et efface les informations d'identification stockées.<br />
<br />
Si vous exécutez une commande nécessitant une authentification alors que vous êtes déconnecté, telle que <b>studio preview create</b>, la CLI vous guidera pour vous connecter.<br />
<br />
<b><font size="3">Sites de prévisualisation à partir de la CLI</font></b><br />
<br />
Les sites de prévisualisation sont des environnements temporaires et partageables hébergés sur WordPress.com qui reflètent votre site Studio local. Ils sont idéaux pour partager votre travail avec d'autres personnes qui ne disposent pas d'un environnement local.<br />
<br />
La CLI fournit un ensemble complet de commandes :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">studio preview create          <span style="color: #339933;"># Create a preview site</span>
studio preview <span style="color: #0000ff;">list</span>            <span style="color: #339933;"># List all your preview sites</span>
studio preview update &lt;host&gt;   <span style="color: #339933;"># Redeploy changes to a preview</span>
studio preview delete &lt;host&gt;   <span style="color: #339933;"># Remove a preview site</span></pre></td></tr></table></code><hr />
</div><br />
<br />
<b><font size="3">WP-CLI intégré, configuré pour vous</font></b><br />
<br />
WP-CLI est l'interface de ligne de commande officielle de WordPress. Studio CLI v2 l'intègre directement via une commande studio wp dédiée, vous n'avez donc pas besoin d'installer ou de configurer WP-CLI vous-même :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">studio wp <span class="br0">&#91;</span>&lt;wp-cli-command&gt;<span class="br0">&#93;</span> <span class="br0">&#91;</span>&lt;wp-cli-arguments&gt;...<span class="br0">&#93;</span></code><hr />
</div><br />
À partir du répertoire racine de votre site, vous pouvez exécuter des tâches WP-CLI courantes telles que :<br />
<br />
- <b>studio wp core version</b> affiche la version WordPress du site actuel.<br />
- <b>studio wp plugin list</b> répertorie les plugins installés (et leur statut).<br />
- <b>studio wp core update-db</b> exécute toutes les mises à jour de base de données requises après une mise à jour WordPress.<br />
<br />
Studio définit les variables d'environnement, les chemins d'accès et les informations d'identification pour vous, afin que ces commandes s'exécutent sur la base de données et les fichiers corrects sans configuration supplémentaire.<br />
<br />
<b><font size="3">Utilisation de Studio CLI avec des outils de codage IA</font></b><br />
<br />
L'un des principaux avantages de Studio CLI v2 est sa capacité à s'intégrer naturellement dans les workflows de développement assistés par l'IA, en particulier avec des outils tels que Claude Code et Cursor. <br />
<br />
Ces agents lisent le code de votre projet local (y compris les thèmes et les plugins) et exécutent des commandes dans votre environnement, ce qui permet de décharger une grande partie du travail répétitif. Par exemple, ils peuvent :<br />
<br />
- Utiliser les commandes <b>studio site</b> pour créer, démarrer, arrêter et gérer des environnements locaux.<br />
- Exécuter <b>studio wp</b> pour les diagnostics, les tâches de base de données et la gestion de contenu.<br />
- Créer et mettre à jour des sites WordPress.com en avant-première pour les réviser sans quitter votre éditeur.<br />
<br />
<b>Fournir du contexte</b><br />
<br />
L'outil d'IA que vous utilisez peut ne pas comprendre automatiquement WordPress Studio ou l'interface CLI de Studio. Pour obtenir des résultats utiles, commencez par donner à l'agent IA un peu de contexte sur ce qu'il examine et les outils qu'il peut utiliser.<br />
<br />
Par exemple, imaginez que vous avez ouvert un dossier local du site Studio dans votre terminal. <br />
<br />
Commencez par indiquer à l'agent IA ce qu'est ce répertoire et qu'il peut exécuter l'interface CLI de Studio. Dans cet exemple, nous utiliserons Claude Code et indiquerons explicitement qu'il peut invoquer la CLI via studio : « <i>Il s'agit du dossier d'un site WordPress Studio. Vous avez accès à la CLI Studio, qui peut être invoquée en exécutant studio. Commencez par explorer les options disponibles.</i> »<br />
<br />
À partir de là, vous devriez obtenir une réponse qui ressemble à ceci :<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p673750d1769755111/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/2.jpg/" border="0" alt="Nom : 2.jpg
Affichages : 404
Taille : 111,2 Ko"  style="float: CONFIG" /></div><br />
Grâce à une simple instruction générative, l'IA a désormais une bonne compréhension de l'interface CLI Studio. Cet exemple a été généré à l'aide d'Opus 4.5.<br />
<br />
<b>Automatiser la configuration de l'environnement</b><br />
<br />
Une fois que l'IA comprend ce que Studio peut faire, vous pouvez commencer à lui confier des tâches de configuration courantes. Par exemple, vous pouvez demander à votre agent : « <i>Configurez un nouveau site WordPress local à l'aide de Studio avec le nom « Nick's Site »</i> ».<br />
<br />
En arrière-plan, cela peut s'exécuter comme suit :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">studio site create --path <span style="color: #FF0000;">&quot;../nicks-site&quot;</span> --name <span style="color: #FF0000;">&quot;Nick's Site&quot;</span> --skip-browser</code><hr />
</div><br />
<br />
Voici un exemple de sortie de Claude Code, à nouveau à l'aide d'Opus 4.5.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p673751d1769755117/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/3.jpg/" border="0" alt="Nom : 3.jpg
Affichages : 401
Taille : 45,8 Ko"  style="float: CONFIG" /></div><br />
<b>Meilleures pratiques lors de l'utilisation de l'IA avec Studio CLI</b><br />
<br />
Les agents IA peuvent être des copilotes incroyablement efficaces lorsque vous les associez à Studio CLI. Ils peuvent accélérer la configuration, le dépannage, les déploiements de prévisualisation et exécuter des commandes réelles sur votre environnement. <br />
<br />
Cela dit, un peu de structure au préalable vous aidera à profiter des avantages tout en évitant les mauvaises surprises.<br />
<br />
- <b>Travaillez à partir de la racine du site Studio (ou utilisez `–path`)</b>. Cela garantit que les commandes s'exécutent sur le projet que vous souhaitez réellement, en particulier si vous avez plusieurs sites sur votre machine.<br />
- <b>Définissez des limites claires dans vos instructions génératives.</b> Par exemple : « Ne pas supprimer de sites », « Exécuter uniquement des commandes studio wp en lecture seule » ou « Demander avant d'exécuter des migrations de base de données ».<br />
- <b>Vérifiez deux fois les opérations destructrices.</b> Pour les commandes telles que <b>studio site delete</b> et <b>studio preview delete</b>, demandez à l'agent de vous montrer les commandes exactes qu'il prévoit d'exécuter avant qu'il ne fasse quoi que ce soit.<br />
<br />
Utilisés à bon escient, l'IA et Studio CLI peuvent éliminer une grande partie des tâches répétitives de configuration, de test et de déploiement, vous permettant ainsi de vous concentrer davantage sur la conception et la création d'expériences WordPress exceptionnelles.<br />
<br />
<b>Source</b> : <a rel="nofollow" href="https://wordpress.com/blog/2026/01/27/wordpress-studio-1-7-0-new-studio-cli/" target="_blank">Annonce de WordPress Studio 1.7</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/368293/Comment-Matt-Mullenweg-PDG-d-Automattic-en-est-arrive-a-tout-faire-pour-detruire-WordPress-le-script-CMS-de-portail-PHP-le-plus-utilise-du-Web/" target="_blank">Comment Matt Mullenweg, PDG d'Automattic, en est arrivé à tout faire pour détruire WordPress, le script CMS de portail PHP le plus utilisé du Web</a><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/378265/Le-systeme-de-gestion-de-contenu-web-WordPress-6-9-est-disponible-et-ajoute-des-notes-au-niveau-des-blocs-une-palette-de-commandes-au-niveau-du-tableau-de-bord-et-une-API-pour-les-capacites/" target="_blank">Le système de gestion de contenu web WordPress 6.9 est disponible et ajoute des notes au niveau des blocs, une palette de commandes au niveau du tableau de bord et une API pour les capacités</a><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/364237/-Au-revoir-WordPress-un-contributeur-quitte-le-projet-WordPress-apres-plus-de-14-ans-de-contribution-il-denonce-un-ecosysteme-abusif-les-abus-subis-par-les-developpeurs-et-le-culte-autour-d-Automatic/" target="_blank">« Au revoir WordPress » : un contributeur quitte le projet WordPress après plus de 14 ans de contribution. Il dénonce un écosystème abusif, les abus subis par les développeurs et le culte autour d'Automatic</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p673749d1769755106/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/1.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p673750d1769755111/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/2.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p673751d1769755117/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/3.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181800/php/edi-cms-outils-scripts-api/wordpress/wordpress-annonce-sortie-version-1-7-wordpress-studio-solution-gratuite-open-source/</guid>
		</item>
		<item>
			<title>Taille de conteneur avec elementor</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181042&amp;goto=newpost</link>
			<pubDate>Fri, 19 Dec 2025 10:52:16 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
Je ne suis qu'un...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je ne suis qu'un simple utilisateur de l'administration d'un site créé notamment avec diwi/elementor<br />
<br />
Il y a des conteneurs dans lesquels je place de nouvelles images les unes derrière les autres (en activant &quot;modifier avec elementor&quot;: je duplique l'image/texte précédente et la remplace par la nouvelle image/texte.<br />
La taille des conteneur a été faite de manière à ce que je ne puisse placer que 3 images sur une même ligne, après quoi une nouvelle image crée une nouvelle ligne.<br />
<br />
<br />
Je ne sais pour quelle raison, depuis X temps, la taille du conteneur a du sauter et lorsque je veux ajouter une nouvelle image sur une dernière ligne de 3, celle-ci s'affiche à la suite, sans créer une nouvelle ligne (j'ai donc une dernière ligne &quot;infinie&quot;.<br />
<br />
<br />
quelqu'un peut-il me dire comment rétablir les données de la taille du conteneur pour les lignes à venir ou autre action?<br />
merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>fullweb75</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181042/php/edi-cms-outils-scripts-api/wordpress/taille-conteneur-elementor/</guid>
		</item>
		<item>
			<title>WordPress 6.9 ajoute des notes au niveau des blocs et une palette de commandes au niveau du tableau de bord</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180840&amp;goto=newpost</link>
			<pubDate>Mon, 08 Dec 2025 08:29:33 GMT</pubDate>
			<description>*Le système de gestion de...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Le système de gestion de contenu web WordPress 6.9 est disponible et ajoute des notes au niveau des blocs, une palette de commandes au niveau du tableau de bord et une API pour les capacités.</font></b><br />
<br />
<b>WordPress 6.9 « Gene » a été publié avec plusieurs mises à jour fonctionnelles, en commençant par les Notes, un nouveau système de commentaires au niveau des blocs qui permet aux éditeurs de laisser des commentaires directement sur des blocs individuels de texte, de mise en page, de média ou de conception sans quitter l'éditeur. Plus de 30 correctifs d'accessibilité améliorent également le comportement des lecteurs d'écran, le placement du curseur de saisie, la visibilité du contenu CSS et la cohérence de la mise au point. Les améliorations de performance couvrent à la fois les thèmes classiques et les thèmes de blocs grâce à l'optimisation des styles de blocs, à la réduction des CSS en ligne et à l'ajustement de la priorisation des scripts.</b><br />
<br />
WordPress (WP, ou WordPress.org) est un système de gestion de contenu web. Il a été créé à l'origine comme un outil de publication de blogs, mais il a évolué pour prendre en charge la publication d'autres contenus web, y compris des sites web plus traditionnels, des listes de diffusion, des forums Internet, des galeries de médias, des sites d'adhésion, des systèmes de gestion de l'apprentissage et des boutiques en ligne. Disponible en tant que logiciel open source et libre, WordPress est l'un des systèmes de gestion de contenu les plus populaires - il était utilisé par 22,52 % du million de sites web les plus importants en décembre 2024.<br />
<br />
WordPress 6.9 « Gene » a été publié avec plusieurs mises à jour fonctionnelles, en commençant par les Notes, un nouveau système de commentaires au niveau des blocs qui permet aux éditeurs de laisser des commentaires directement sur des blocs individuels de texte, de mise en page, de média ou de conception sans quitter l'éditeur. La palette de commandes est désormais disponible sur l'ensemble du tableau de bord, ce qui permet aux utilisateurs de déclencher des actions, de changer de vue et d'ouvrir des outils à l'aide de commandes clavier depuis n'importe quel écran.<br />
<br />
Les blocs Paragraphe et Intitulé ajoutent une option « Adapter le texte au conteneur » qui ajuste automatiquement la typographie pour remplir l'espace disponible, ce qui facilite la création de bannières ou d'autres sections de texte proéminentes. Pour les développeurs, la mise à jour introduit l'API Abilities, un système de permissions unifié qui standardise la gestion des capacités à travers PHP, les points de terminaison REST et les outils pilotés par l'IA. Plus de 30 correctifs d'accessibilité améliorent également le comportement des lecteurs d'écran, le placement du curseur de saisie, la visibilité du contenu CSS et la cohérence de la mise au point.<br />
<br />
Les améliorations de performance couvrent à la fois les thèmes classiques et les thèmes de blocs grâce à l'optimisation des styles de blocs, à la réduction des CSS en ligne et à l'ajustement de la priorisation des scripts. Les modifications apportées au backend incluent des requêtes de base de données plus efficaces, une mise en cache améliorée, une meilleure création de WP Cron et un nouveau tampon de sortie pour la gestion des modèles.<br />
<br />
Cette annonce intervient alors que <a href="https://php.developpez.com/actu/368293/Comment-Matt-Mullenweg-PDG-d-Automattic-en-est-arrive-a-tout-faire-pour-detruire-WordPress-le-script-CMS-de-portail-PHP-le-plus-utilise-du-Web/" target="_blank">le conflit ouvert entre Matt Mullenweg, PDG d’Automattic, et l'hébergeur WP Engine</a> a eu des conséquences désastreuses sur WordPress et sa communauté. Automattic a réduit ses contributions à WordPress pour s'aligner sur WP Engine, qu'il a qualifié de « cancer ». La société a déjà cessé de travailler sur WordPress Core, Gutenberg, Playground, Openverse et WordPress.org. Ces événements ont provoqué des tensions au sein de la communauté WordPress, certains membres exprimant des préoccupations quant à la direction prise par Matt Mullenweg et son impact potentiel sur l'intégrité et la viabilité de ce projet open source très populaire.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/RPPkrk5tJ90?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Voici un aperçu des principales fonctionnalités de WordPress 6.9 :<br />
<br />
<b>Notes au niveau des blocs</b> <br />
<br />
Les notes au niveau des blocs facilitent la collaboration en permettant aux équipes de laisser des commentaires directement sur le bloc qui nécessite une attention particulière.<br />
<br />
Vous pouvez ajouter des notes de discussion et de résolution depuis la barre d'outils ou la barre latérale, et les auteurs reçoivent automatiquement des alertes par email lorsque de nouveaux commentaires arrivent.<br />
<br />
Ainsi, tous les commentaires - modifications avant le lancement, corrections de contenu, ajustements de conception et même mises à jour après la publication, comme l'ajout de nouveaux liens - sont regroupés en un seul endroit, sans nécessiter d'outils supplémentaires.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672398d1765188789/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/1.jpg/" border="0" alt="Nom : 1.jpg
Affichages : 6455
Taille : 41,7 Ko"  style="float: CONFIG" /></div><br />
<b>Glisser-déposer visuel</b><br />
<br />
Vous pouvez désormais voir exactement où un bloc va atterrir lorsque vous le faites glisser.<br />
<br />
La prévisualisation en direct facilite grandement le déplacement des éléments sans avoir à deviner ou à corriger des erreurs par la suite.<br />
<br />
Cela fonctionne actuellement avec des blocs simples, mais le glisser-déposer multi-blocs est prévu dans WordPress 7.0.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672399d1765188794/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/2.jpg/" border="0" alt="Nom : 2.jpg
Affichages : 642
Taille : 46,5 Ko"  style="float: CONFIG" /></div><br />
<b>Bloc accordéon</b><br />
<br />
Le bloc accordéon vous permet d'ajouter des sections pliables avec des titres et des panneaux, créant une expérience de lecture interactive sans nécessiter de code ou de plugins supplémentaires.<br />
<br />
Il est idéal pour ajouter des questions fréquemment posées (FAQ) ou pour développer des détails et des listes afin d'ajouter un contexte supplémentaire dans votre contenu.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672400d1765188805/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/3.jpg/" border="0" alt="Nom : 3.jpg
Affichages : 639
Taille : 56,5 Ko"  style="float: CONFIG" /></div><br />
<b>Blocs Term Query et compagnons</b><br />
<br />
Le bloc Term Query simplifie la construction de pages de catégories et d'étiquettes en offrant une façon intégrée de les afficher, similaire au bloc Query Loop. <br />
<br />
Il propose des options de tri (par exemple, le tri « par ordre »), des outils de conception pour le style, ainsi qu'une option permettant de transformer chaque élément en lien. <br />
<br />
Combiné au bloc Term Description, il offre une configuration puissante pour les sites d'annuaires et de magazines qui utilisent un filtrage structuré ou une navigation par sous-pages.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672401d1765188810/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/4.jpg/" border="0" alt="Nom : 4.jpg
Affichages : 640
Taille : 45,4 Ko"  style="float: CONFIG" /></div><br />
<b>Blocs Compte de commentaires et Lien de commentaires</b><br />
<br />
En séparant le compte de commentaires du lien de commentaires, les blocs Compte de commentaires et Lien de commentaires vous permettent de placer l'accès aux commentaires là où c'est le plus judicieux dans un article.<br />
<br />
Ils vous permettent également de contrôler les articles qui autorisent les commentaires. <br />
<br />
Cette fonctionnalité était auparavant exclusive à l'éditeur de site, mais elle est maintenant disponible dans l'ensemble de l'expérience d'édition.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672402d1765188815/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/5.jpg/" border="0" alt="Nom : 5.jpg
Affichages : 637
Taille : 57,5 Ko"  style="float: CONFIG" /></div><br />
<b>Ratios d'aspect du bloc Galerie et affiches du bloc Couverture</b><br />
<br />
Le nouveau paramètre de ratio d'aspect du bloc Galerie vous permet d'appliquer un ratio cohérent à toutes les images d'un simple clic à partir de la barre latérale. <br />
<br />
Il n'est plus nécessaire de procéder à des modifications manuelles ou de personnaliser les feuilles de style CSS pour obtenir une mise en page propre et unifiée. <br />
<br />
En outre, vous pouvez ajouter des images de poster aux blocs de couverture avec des arrière-plans vidéo, ce qui permet aux visiteurs ayant une connexion plus lente de voir une image fixe pendant que la vidéo se charge.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672403d1765188819/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/6.jpg/" border="0" alt="Nom : 6.jpg
Affichages : 629
Taille : 62,0 Ko"  style="float: CONFIG" /></div><br />
<b>Trouvez n'importe quoi instantanément avec la Palette de commandes du tableau de bord</b><br />
<br />
Vous pouvez maintenant utiliser la Palette de commandes dans l'ensemble du tableau de bord de WP Admin (pas seulement dans l'éditeur de site), ce qui rend les commandes de navigation universellement accessibles. <br />
<br />
Avec un seul raccourci clavier, les utilisateurs et les administrateurs peuvent éviter les clics répétitifs dans les menus et rationaliser leurs flux de travail.<br />
<br />
Appuyez sur Ctrl/Cmd + K sur n'importe quel écran d'administration (Posts, Pages, Media, Settings, Site Editor, et plus encore) pour ouvrir la barre de recherche/commande et exécuter rapidement des actions ou accéder au contenu. <br />
<br />
Palette de commandes du tableau de bord dans WordPress 6.9<br />
Les développeurs peuvent également enregistrer des commandes personnalisées via les Commandes Extensibles, donnant aux utilisateurs un accès encore plus rapide aux fonctionnalités fréquemment utilisées.<br />
<br />
<div style="text-align: center;"><img src="https://www.developpez.net/forums/attachments/p672404d1765188824/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/7.jpg/" border="0" alt="Nom : 7.jpg
Affichages : 259
Taille : 40,5 Ko"  style="float: CONFIG" /></div><br />
<b>Profitez de temps de chargement plus rapides sans effort supplémentaire</b><br />
<br />
WordPress est connu pour ses performances et améliore constamment le standard avec de nouvelles mises à jour. <br />
<br />
Les dernières améliorations techniques de WordPress 6.9 travaillent ensemble pour augmenter les performances sans aucun effort supplémentaire de votre part. <br />
<br />
En voici quelques exemples :<br />
<br />
- CSS de bloc à la demande : Charge les styles uniquement pour les blocs réellement utilisés sur une page, ce qui améliore les performances des thèmes classiques qui contiennent normalement plus de CSS que nécessaire.<br />
<br />
- Exécution cron optimisée : Améliore tangentiellement les Vitesses fondamentales du web en améliorant le temps de chargement du premier octet, en programmant des tâches à exécuter après le chargement de la page.<br />
<br />
- Tampon de sortie des modèles et styles de blocs cachés : Un système mis à jour que les développeurs de modèles peuvent utiliser pour optimiser les sorties HTML, ce qui se traduit par de petites améliorations des performances des pages - en chargeant les styles de blocs uniquement lorsque cela est nécessaire, en les déplaçant dans la section &lt;head&gt; et en réduisant la sortie CSS. Il est activé par défaut pour les thèmes WordPress classiques et ne charge pas les styles pour les blocs cachés.<br />
<br />
L'ensemble de ces modifications permet à vos pages de se charger plus rapidement et d'être plus fluides pour les visiteurs, le tout sans configuration supplémentaire.<br />
<br />
<b>Source</b> : <a rel="nofollow" href="https://wordpress.com/" target="_blank">WordPress</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/364664/WordPress-6-7-un-nouveau-theme-de-bloc-par-defaut-ainsi-que-des-options-de-style-ameliorees-pour-les-bordures-les-arriere-plans-les-ombres-et-l-espacement-entre-les-differents-blocs/" target="_blank">WordPress 6.7 : un nouveau thème de bloc par défaut, ainsi que des options de style améliorées pour les bordures, les arrière-plans, les ombres et l'espacement entre les différents blocs</a><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/369764/Matt-Mullenweg-et-la-question-de-la-succession-chez-Automattic-pourquoi-le-fondateur-de-WordPress-refuse-de-ceder-le-pouvoir-a-un-comite-les-messages-appelant-a-sa-demission-se-multiplient/" target="_blank">Matt Mullenweg et la question de la succession chez Automattic : pourquoi le fondateur de WordPress refuse de céder le pouvoir à un comité. Les messages appelant à sa démission se multiplient</a><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/369372/Dernieres-nouvelles-de-la-guerre-de-WordPress-le-projet-de-marque-HOSTED-WORDPRESS-et-MANAGED-WORDPRESS-echoue-une-remise-en-question-du-leadership-actuel-est-elle-inevitable/" target="_blank">Dernières nouvelles de la guerre de WordPress : le projet de marque « HOSTED WORDPRESS » et « MANAGED WORDPRESS » échoue. Une remise en question du leadership actuel est-elle inévitable ?</a></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p672398d1765188789/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/1.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672399d1765188794/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/2.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672400d1765188805/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/3.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672401d1765188810/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/4.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672402d1765188815/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/5.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672403d1765188819/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/6.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p672404d1765188824/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/7.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>Jade Emy</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180840/php/edi-cms-outils-scripts-api/wordpress/wordpress-6-9-ajoute-notes-niveau-blocs-palette-commandes-niveau-tableau-bord/</guid>
		</item>
		<item>
			<title>formulaire et champs personnalisés sur un modèle</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180157&amp;goto=newpost</link>
			<pubDate>Tue, 28 Oct 2025 22:30:05 GMT</pubDate>
			<description>Soit un site pour une...</description>
			<content:encoded><![CDATA[<div>Soit un site pour une association qui démarre et qui a zéro en caisse. D'où tous les outils pour faire le site doivent être gratuits.<br />
donc sous wordpress avec elementor, je crée mes articles avec un modèle. Dans chaque article j'ai des champs personnalisés. Chaque champ est affiché dans l'article avec un snippet. Et je récupère ces champs pour resumer chaque article dans la page de &quot;blog&quot;. ça fonctionne .<br />
Mais maintenant je veux encore simplifier la saisie. Certains adhérent en se loguant auront accès au menu à une page de formulaire pour rédiger l'article. Je n'arrive pas à lier les champs du formulaire pour qu'ils apparaisssent sur mon modèle pour former un novel article.<br />
Avez-vous des solutions gratuites ?<br />
Merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>dmalik</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180157/php/edi-cms-outils-scripts-api/wordpress/formulaire-champs-personnalises-modele/</guid>
		</item>
		<item>
			<title>Partager un article sur les réseaux sociaux</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179210&amp;goto=newpost</link>
			<pubDate>Fri, 12 Sep 2025 13:42:16 GMT</pubDate>
			<description>voila ma configuration. 
Ma...</description>
			<content:encoded><![CDATA[<div>voila ma configuration.<br />
Ma configuration WP actuelle :<br />
<br />
    - Version de WordPress : 6.2.7<br />
    - Version de PHP/MySQL : 7.4.33 / 5.7.42<br />
    - Thème utilisé : ColorMag<br />
    - Thème URI : <a rel="nofollow" href="https://themegrill.com/themes/colormag/" target="_blank">https://themegrill.com/themes/colormag/</a><br />
    - Extensions en place : Accelerated Mobile Pages (1.1.6.1), AddToAny Share Buttons (1.8.13), Akismet Anti-spam: Spam Protection (5.5), Animate It! (3.0.3), Backuply (1.4.8), BackUpWordPress (3.14), Classic Editor (1.6.7), Contact Form 7 (5.8.7), Easy Post Views Count (1.0.6), Ele Custom Skin (3.1.9), Embed Plus for YouTube Gallery, Livestream and Lazy Loading with Facades (14.2.3), Forum_wordpress_fr (4.2), Image Zoom (1.8.8), Latest Posts (1.4.4), Livemesh Addons for WPBakery Page Builder (3.9.3), MC4WP: Mailchimp for WordPress (4.10.7), Newsletter (8.9.4), Ninja Forms (3.8.0), Ninja Forms Legacy (3.9.99), Page Builder by SiteOrigin (2.33.2), Rank Math SEO (1.0.213), Site Kit by Google (1.161.0), SiteOrigin CSS (1.6.4), SiteOrigin Widgets Bundle (1.69.3), Smart Donations (4.0.12), Spectra (2.19.12), UpdraftPlus - Backup/Restore (1.25.7), WP Image Zoom (1.60), WP Statistics (14.15.4), WP Super Cache (1.11.0)<br />
    - Adresse du site : <a rel="nofollow" href="https://presscat.org" target="_blank">https://presscat.org</a><br />
    - Nom de l'hébergeur : Apache<br />
<br />
aujourd'hui j'essaye de partager un article sur facebook et ma photo de legende ne s'affiche pas<br />
<br />
Es ce quelqu'un peut m'aider svp</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>Armin666</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179210/php/edi-cms-outils-scripts-api/wordpress/partager-article-reseaux-sociaux/</guid>
		</item>
		<item>
			<title>Mise en page et format sur un article WP</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178210&amp;goto=newpost</link>
			<pubDate>Wed, 23 Jul 2025 09:58:26 GMT</pubDate>
			<description>Bonjour, 
 
je rencontre un...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
je rencontre un problème de mise en page sur un article WordPress que je ne comprends pas....<br />
Alors que toutes les autres pages de ce site (<a rel="nofollow" href="https://cineprovence.org/" target="_blank">https://cineprovence.org/</a>) sont correctement formatées, l'article consacré au film &quot;<a rel="nofollow" href="https://cineprovence.org/2025/07/23/la-femme-du-boulanger/" target="_blank">La femme du boulanger</a>&quot; est d'un style/format complétement merdique....<br />
Tout est ramassé, alors que dans l'éditeur cela ressemble à ce que j’attends !<br />
<br />
Que dois-je faire ?<br />
<br />
<br />
Pour info voici le notice d'un autre film :<br />
<a rel="nofollow" href="https://cineprovence.org/2024/05/13/la-dame-dans-lauto-avec-des-lunettes-et-un-fusil/" target="_blank">https://cineprovence.org/2024/05/13/...s-et-un-fusil/</a><br />
<br />
Merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>SQLpro</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178210/php/edi-cms-outils-scripts-api/wordpress/mise-page-format-article-wp/</guid>
		</item>
		<item>
			<title><![CDATA[non accessibilité du formulaire pour les lesteurs d'écran]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177678&amp;goto=newpost</link>
			<pubDate>Mon, 23 Jun 2025 09:42:36 GMT</pubDate>
			<description><![CDATA[Bonjour, 
tout d'abord, ne...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
tout d'abord, ne trouvant pas de forum adapté, je pose ma question ici :<br />
<br />
Un déficient visuel me dit que le formulaire de cette page wordpress est non accessible aux  lecteurs d'écran. Comment faire ?<br />
<a rel="nofollow" href="https://vercorshandisport.org/event/sortie-du-06-09-2025/" target="_blank">https://vercorshandisport.org/event/...du-06-09-2025/</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>laurentSc</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177678/php/edi-cms-outils-scripts-api/wordpress/non-accessibilite-formulaire-lesteurs-d-ecran/</guid>
		</item>
		<item>
			<title>Personnalisation du plugin Fluent Forms</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177381&amp;goto=newpost</link>
			<pubDate>Sat, 07 Jun 2025 20:16:01 GMT</pubDate>
			<description>Bonjour, 
 
Je suis...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je suis webdesigner et je suis une débutante en wordpress. Je dois réaliser un formulaire d'inscription avec des fonctionnalités spécifiques, j'ai donc choisi Fluent Forms.<br />
<br />
J'aimerai cependant ajouter plusieurs comportements à ce plugin lors de la soumission du formulaire : <br />
- Envoi des fichiers uploadés vers un drive Google<br />
- Utilisation des fonctions de l'API du CRM que nous utilisons pour les inscriptions.<br />
- Génération de PDF signés électroniquement (j'ai la version pro de Fluent Forms et le plugin pour les signatures électroniques) et envoyés à l'adhérent<br />
<br />
Je pense qu'il faut que je modifie ou que je créé un fichier php du plugin mais j'avoue ne pas savoir par quel bout le prendre. Car je ne veux pas modifier les fichiers du plugin (déjà parce que c'est pas une bonne pratique et puis tout sera effacé à la prochaine mise à jour du plugin) mais je ne sais pas comment surcharger le plugin.<br />
<br />
Si quelqu'un a une piste pour me dire par où commencer ça serait super gentil !<br />
<br />
N'hésitez pas à me dire si vous avez besoin de + d'infos ;)</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>Emyleen</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177381/php/edi-cms-outils-scripts-api/wordpress/personnalisation-plugin-fluent-forms/</guid>
		</item>
		<item>
			<title>Récupérer certaines données en table</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177360&amp;goto=newpost</link>
			<pubDate>Fri, 06 Jun 2025 14:17:43 GMT</pubDate>
			<description>Bonjour les super dévs !!! :D...</description>
			<content:encoded><![CDATA[<div>Bonjour les super dévs !!! :D<br />
<br />
Je dois reprendre un site crée « manuellement » sous (php, mysql,html,css,..) avec une trentaine de tables (créées sous phpmyadmin) et le refaire entièrement  sous WP !!! 8O<br />
<br />
Je reprends les fichiers qui contiennent du html (bcp de texte)  et des commandes php (pour accès base) et commence à les intégrer dans les différents menus du new site sauf que certains contiennent des connexions à certaines tables afin de récupérer certaines données du style:<br />
<br />
(exemple suivant: Pour uniquement récupérer le nombre de membres (table « Inscrits ») et le nbre de cotisants (table « Cotisation »):<br />
<br />
=================================================================<br />
<br />
$REQUETE_NB= »SELECT COUNT(numero) FROM inscrits« ;<br />
if (!$REQUETE_NB=mysqli_query($CNX,$REQUETE_NB)){<br />
print (« Erreur requete ! »); exit(); }<br />
else { $ROW=mysqli_fetch_row($REQUETE_NB);<br />
$TOTAL = $ROW[0];<br />
print (« L’association a &lt;b&gt;$TOTAL membres&lt;/b&gt; « );}<br />
?&gt;<br />
(des partenaires) et<br />
&lt;?php<br />
$REQUETE_NBC= »SELECT COUNT(email) FROM cotisation« ;<br />
if (!$REQUETE_NBC=mysqli_query($CNX,$REQUETE_NBC)){<br />
print (« Erreur de la requ&amp;ecirc;te ! »);<br />
exit(); }<br />
else { $ROWC=mysqli_fetch_row($REQUETE_NBC);<br />
$TOTALC = $ROWC[0];<br />
print (« &lt;b&gt;$TOTALC « ); }<br />
?&gt;<br />
cotisants&lt;/b&gt; aujourd’hui.<br />
<br />
==========================================================<br />
<br />
J’ai copié tel quel le fichier.<br />
<br />
Rem: <i>(je suis revenu sous l’éditeur classique car avec Gutenberg il m’affiche erreur json…, Bref autre pb :-(( ),</i><br />
<br />
1/ mais comment WP interprète cette partie « php  »   ? et  où faut il mettre ces instructions ???<br />
<br />
<br />
2/ et comment récupérer ces tables ? car si j’ai bien compris , sous WP ,elles sont toutes préfixées par WP-….<br />
<br />
Merci bcp pour vos réponses!  (C’est une première pour moi!!!)</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>Phpx1</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177360/php/edi-cms-outils-scripts-api/wordpress/recuperer-certaines-donnees-table/</guid>
		</item>
		<item>
			<title><![CDATA[Modification de valeur entre 2 méthode [Plugin]]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2176985&amp;goto=newpost</link>
			<pubDate>Tue, 20 May 2025 13:18:48 GMT</pubDate>
			<description>Bonjour à tous. 
 
Mon plugin...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous.<br />
<br />
Mon plugin va avoir pour but de gérer de la location de matériel avec versement d'acompte (j'ai pas trouvé de plugin existant sans me ruiner).<br />
<br />
Dans la fiche produit, je saisi un prix de base ainsi que le prix de l'acompte a verser (mais pour le moment, pas important dans ce post)<br />
<br />
Avant tout voici du code ^^<br />
J'ai une première méthode :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td valign="top"><pre style="margin: 0">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> add_rental_data_to_cart<span class="br0">&#40;</span><span style="color: #339933;">$cart_item_data</span>, <span style="color: #339933;">$product_id</span>, <span style="color: #339933;">$variation_id</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_enabled'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span> !== <span style="color: #FF0000;">'yes'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;
        <span class="br0">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;
        <span class="br0">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #339933;">$start_date</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$start_time</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$duration</span> = intval<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$duration_unit</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_duration_unit'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #808080;">// Combine date and time</span>
        <span style="color: #339933;">$start_datetime</span> = date<span class="br0">&#40;</span><span style="color: #FF0000;">'Y-m-d H:i:s'</span>, strtotime<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #800000;">$start_date</span> <span style="color: #800000;">$start_time</span>&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #808080;">// Calculate end datetime</span>
        <span style="color: #339933;">$booking</span> = <span style="color: #0000ff;">new</span> WC_ER_Booking<span class="br0">&#40;</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$end_datetime</span> = <span style="color: #339933;">$booking</span>-&gt;calculate_end_date<span class="br0">&#40;</span><span style="color: #339933;">$start_datetime</span>, <span style="color: #339933;">$duration</span>, <span style="color: #339933;">$duration_unit</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #808080;">// Get the base price (regular price)</span>
        <span style="color: #339933;">$product</span> = wc_get_product<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$base_price</span> = floatval<span class="br0">&#40;</span><span style="color: #339933;">$product</span>-&gt;get_regular_price<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #808080;">// Calculate deposit</span>
        <span style="color: #339933;">$deposit_type</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_deposit_type'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;
        <span style="color: #339933;">$deposit_amount</span> = floatval<span class="br0">&#40;</span>get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_deposit'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$deposit_type</span> === <span style="color: #FF0000;">'percentage'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #339933;">$deposit</span> = <span style="color: #339933;">$base_price</span> * <span class="br0">&#40;</span><span style="color: #339933;">$deposit_amount</span> / <span style="color: #cc66cc;">100</span><span class="br0">&#41;</span>;
        <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span class="br0">&#123;</span>
            <span style="color: #339933;">$deposit</span> = <span style="color: #339933;">$deposit_amount</span>;
        <span class="br0">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #339933;">$cart_item_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span>
            <span style="color: #FF0000;">'start_datetime'</span> =&gt; <span style="color: #339933;">$start_datetime</span>,
            <span style="color: #FF0000;">'end_datetime'</span> =&gt; <span style="color: #339933;">$end_datetime</span>,
            <span style="color: #FF0000;">'duration'</span> =&gt; <span style="color: #339933;">$duration</span>,
            <span style="color: #FF0000;">'duration_unit'</span> =&gt; <span style="color: #339933;">$duration_unit</span>,
            <span style="color: #FF0000;">'base_price'</span> =&gt; <span style="color: #339933;">$base_price</span>,
            <span style="color: #FF0000;">'deposit_amount'</span> =&gt; <span style="color: #339933;">$deposit</span>
        <span class="br0">&#41;</span>;
&nbsp;
&nbsp;
        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;
    <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>La valeur de <i>$cart_item_data['rental_data']['base_price']</i> correspond bien aux informations de la fiche produit.<br />
<br />
Puis, j'ai la méthode de calcul des prix :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td valign="top"><pre style="margin: 0">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> calculate_rental_price<span class="br0">&#40;</span><span style="color: #339933;">$cart</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;&amp; !defined<span class="br0">&#40;</span><span style="color: #FF0000;">'DOING_AJAX'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">return</span>;
        <span class="br0">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>did_action<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_before_calculate_totals'</span><span class="br0">&#41;</span> &gt;= <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">return</span>;
        <span class="br0">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #0000ff;">foreach</span> <span class="br0">&#40;</span><span style="color: #339933;">$cart</span>-&gt;get_cart<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> <span style="color: #339933;">$cart_item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span style="color: #339933;">$rental_data</span> = <span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span>;
                <span style="color: #339933;">$total_price</span> = <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'base_price'</span><span class="br0">&#93;</span> * <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'duration'</span><span class="br0">&#93;</span>;
                <span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'data'</span><span class="br0">&#93;</span>-&gt;set_price<span class="br0">&#40;</span><span style="color: #339933;">$total_price</span><span class="br0">&#41;</span>;
            <span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>Mon problème est que la valeur de <i>$cart_item['rental_data']['base_price']</i> ne correspond plus alors qu'il n'y a aucun traitement de la valeur ailleurs.<br />
<br />
Voici le code complet du fichier complet dans lequel se trouve les fonctions en question :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
<span style="color: black;"><span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!defined<span class="br0">&#40;</span><span style="color: #FF0000;">'ABSPATH'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #0000ff;">exit</span>;</span>
<span style="color: black;"><span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">class</span> WC_ER_Cart <span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">        add_filter<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_add_cart_item_data'</span>, <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>, <span style="color: #FF0000;">'add_rental_data_to_cart'</span><span class="br0">&#41;</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">3</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        add_filter<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_get_item_data'</span>, <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>, <span style="color: #FF0000;">'display_rental_data_in_cart'</span><span class="br0">&#41;</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        add_action<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_before_calculate_totals'</span>, <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>, <span style="color: #FF0000;">'calculate_rental_price'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        add_filter<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_add_to_cart_validation'</span>, <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>, <span style="color: #FF0000;">'validate_rental_data'</span><span class="br0">&#41;</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">3</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> add_rental_data_to_cart<span class="br0">&#40;</span><span style="color: #339933;">$cart_item_data</span>, <span style="color: #339933;">$product_id</span>, <span style="color: #339933;">$variation_id</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_enabled'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span> !== <span style="color: #FF0000;">'yes'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$start_date</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$start_time</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$duration</span> = intval<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$duration_unit</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_duration_unit'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Combine date and time</span></span>
<span style="color: black;">        <span style="color: #339933;">$start_datetime</span> = date<span class="br0">&#40;</span><span style="color: #FF0000;">'Y-m-d H:i:s'</span>, strtotime<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #800000;">$start_date</span> <span style="color: #800000;">$start_time</span>&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Calculate end datetime</span></span>
<span style="color: black;">        <span style="color: #339933;">$booking</span> = <span style="color: #0000ff;">new</span> WC_ER_Booking<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$end_datetime</span> = <span style="color: #339933;">$booking</span>-&gt;calculate_end_date<span class="br0">&#40;</span><span style="color: #339933;">$start_datetime</span>, <span style="color: #339933;">$duration</span>, <span style="color: #339933;">$duration_unit</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Get the base price (regular price)</span></span>
<span style="color: black;">        <span style="color: #339933;">$product</span> = wc_get_product<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$base_price</span> = floatval<span class="br0">&#40;</span><span style="color: #339933;">$product</span>-&gt;get_regular_price<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Calculate deposit</span></span>
<span style="color: black;">        <span style="color: #339933;">$deposit_type</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_deposit_type'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$deposit_amount</span> = floatval<span class="br0">&#40;</span>get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_deposit'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$deposit_type</span> === <span style="color: #FF0000;">'percentage'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$deposit</span> = <span style="color: #339933;">$base_price</span> * <span class="br0">&#40;</span><span style="color: #339933;">$deposit_amount</span> / <span style="color: #cc66cc;">100</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$deposit</span> = <span style="color: #339933;">$deposit_amount</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$cart_item_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">            <span style="color: #FF0000;">'start_datetime'</span> =&gt; <span style="color: #339933;">$start_datetime</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'end_datetime'</span> =&gt; <span style="color: #339933;">$end_datetime</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'duration'</span> =&gt; <span style="color: #339933;">$duration</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'duration_unit'</span> =&gt; <span style="color: #339933;">$duration_unit</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'base_price'</span> =&gt; <span style="color: #339933;">$base_price</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'deposit_amount'</span> =&gt; <span style="color: #339933;">$deposit</span></span>
<span style="color: black;">        <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$cart_item_data</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> display_rental_data_in_cart<span class="br0">&#40;</span><span style="color: #339933;">$item_data</span>, <span style="color: #339933;">$cart_item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$rental_data</span> = <span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Base Price per Day'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; wc_price<span class="br0">&#40;</span><span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'base_price'</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Duration'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; sprintf<span class="br0">&#40;</span></span>
<span style="color: black;">                    <span style="color: #FF0000;">'%d %s'</span>,</span>
<span style="color: black;">                    <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'duration'</span><span class="br0">&#93;</span>,</span>
<span style="color: black;">                    <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'duration_unit'</span><span class="br0">&#93;</span></span>
<span style="color: black;">                <span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Total'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; wc_price<span class="br0">&#40;</span><span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'base_price'</span><span class="br0">&#93;</span> * <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Rental Start'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; date_i18n<span class="br0">&#40;</span>get_option<span class="br0">&#40;</span><span style="color: #FF0000;">'date_format'</span><span class="br0">&#41;</span> . <span style="color: #FF0000;">' '</span> . get_option<span class="br0">&#40;</span><span style="color: #FF0000;">'time_format'</span><span class="br0">&#41;</span>, strtotime<span class="br0">&#40;</span><span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'start_datetime'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Rental End'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; date_i18n<span class="br0">&#40;</span>get_option<span class="br0">&#40;</span><span style="color: #FF0000;">'date_format'</span><span class="br0">&#41;</span> . <span style="color: #FF0000;">' '</span> . get_option<span class="br0">&#40;</span><span style="color: #FF0000;">'time_format'</span><span class="br0">&#41;</span>, strtotime<span class="br0">&#40;</span><span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'end_datetime'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">            <span style="color: #339933;">$item_data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'key'</span> =&gt; __<span class="br0">&#40;</span><span style="color: #FF0000;">'Deposit Required'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'value'</span> =&gt; wc_price<span class="br0">&#40;</span><span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'deposit_amount'</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$item_data</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> calculate_rental_price<span class="br0">&#40;</span><span style="color: #339933;">$cart</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;&amp; !defined<span class="br0">&#40;</span><span style="color: #FF0000;">'DOING_AJAX'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">return</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>did_action<span class="br0">&#40;</span><span style="color: #FF0000;">'woocommerce_before_calculate_totals'</span><span class="br0">&#41;</span> &gt;= <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">return</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">foreach</span> <span class="br0">&#40;</span><span style="color: #339933;">$cart</span>-&gt;get_cart<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">as</span> <span style="color: #339933;">$cart_item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                <span style="color: #339933;">$rental_data</span> = <span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_data'</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$total_price</span> = <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'base_price'</span><span class="br0">&#93;</span> * <span style="color: #339933;">$rental_data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'duration'</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$cart_item</span><span class="br0">&#91;</span><span style="color: #FF0000;">'data'</span><span class="br0">&#93;</span>-&gt;set_price<span class="br0">&#40;</span><span style="color: #339933;">$total_price</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">            <span class="br0">&#125;</span></span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> validate_rental_data<span class="br0">&#40;</span><span style="color: #339933;">$passed</span>, <span style="color: #339933;">$product_id</span>, <span style="color: #339933;">$quantity</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_enabled'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span> !== <span style="color: #FF0000;">'yes'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #339933;">$passed</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> || !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            wc_add_notice<span class="br0">&#40;</span>__<span class="br0">&#40;</span><span style="color: #FF0000;">'Please select rental dates and duration.'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>, <span style="color: #FF0000;">'error'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">false</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$start_date</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_date'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$start_time</span> = sanitize_text_field<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_start_time'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$duration</span> = intval<span class="br0">&#40;</span><span style="color: #339933;">$_POST</span><span class="br0">&#91;</span><span style="color: #FF0000;">'rental_duration'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Validate minimum and maximum duration</span></span>
<span style="color: black;">        <span style="color: #339933;">$min_duration</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_min_duration'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$max_duration</span> = get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_max_duration'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$duration</span> &lt; <span style="color: #339933;">$min_duration</span> || <span style="color: #339933;">$duration</span> &gt; <span style="color: #339933;">$max_duration</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            wc_add_notice<span class="br0">&#40;</span></span>
<span style="color: black;">                sprintf<span class="br0">&#40;</span></span>
<span style="color: black;">                    __<span class="br0">&#40;</span><span style="color: #FF0000;">'Rental duration must be between %d and %d.'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                    <span style="color: #339933;">$min_duration</span>,</span>
<span style="color: black;">                    <span style="color: #339933;">$max_duration</span></span>
<span style="color: black;">                <span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'error'</span></span>
<span style="color: black;">            <span class="br0">&#41;</span>;</span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">false</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #808080;">// Check availability</span></span>
<span style="color: black;">        <span style="color: #339933;">$start_datetime</span> = date<span class="br0">&#40;</span><span style="color: #FF0000;">'Y-m-d H:i:s'</span>, strtotime<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #800000;">$start_date</span> <span style="color: #800000;">$start_time</span>&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$booking</span> = <span style="color: #0000ff;">new</span> WC_ER_Booking<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$end_datetime</span> = <span style="color: #339933;">$booking</span>-&gt;calculate_end_date<span class="br0">&#40;</span></span>
<span style="color: black;">            <span style="color: #339933;">$start_datetime</span>,</span>
<span style="color: black;">            <span style="color: #339933;">$duration</span>,</span>
<span style="color: black;">            get_post_meta<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #FF0000;">'_rental_duration_unit'</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span></span>
<span style="color: black;">        <span class="br0">&#41;</span>;</span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #339933;">$booking</span>-&gt;check_availability<span class="br0">&#40;</span><span style="color: #339933;">$product_id</span>, <span style="color: #339933;">$start_datetime</span>, <span style="color: #339933;">$end_datetime</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            wc_add_notice<span class="br0">&#40;</span>__<span class="br0">&#40;</span><span style="color: #FF0000;">'The selected dates are not available for rental.'</span>, <span style="color: #FF0000;">'wc-equipment-rental'</span><span class="br0">&#41;</span>, <span style="color: #FF0000;">'error'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">            <span style="color: #0000ff;">return</span> <span style="color: #0080ff;">false</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$passed</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></code><hr />
</div>Merci d'avance pour votre aide</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1536/php/edi-cms-outils-scripts-api/wordpress/">WordPress</category>
			<dc:creator>FCL31</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2176985/php/edi-cms-outils-scripts-api/wordpress/modification-entre-2-methode-plugin/</guid>
		</item>
	</channel>
</rss>
