Le fait d’insérer des éléments statiques sur le code n’est pas une pratique très recommandable (hardcode). C’est paraît dans le cas des URLs qu’on doit mettre sur le code. On considère le fait d’écrire directement l’adresse une mauvaise pratique. Il faut donc chercher une façon de mettre cette information d’une façon « relative ».
Dans un article précédent nous avons expliqué comment trouver l’URL relative du theme WordPress, et maintenant nous allons voir comment chercher les pages employées par Woocommerce lors des différents processus de vente en ligne.
Les pages créées par Woocommerce
Des qu’on installe woocommerce sur un site web il crée certaines pages nécessaires pour le fonctionnement de la boutique. Nous parlons des pages comme : la boutique, le panier ou le checkout.
Parfois nous devons faire référence à ces URLs directement sur le code pour rajouter une fonction à notre site. Le problème est que Woocommerce laisse aussi l’option de modifier cette page de fonctionnalité qu’il à crée à travers des options de réglage de la boutique :
Donc cela deviens un problème si on a mis directement l’URL sur notre code car si l’administrateur du site décide changer la page le lien ne va pas bien fonctionner et cela nous oblige à modifier le code.
Comment obtenir les URLs relatives employées par Woocommerce
Dans ce cas, comment trouver ces URLs ? Heureusement woocommerce a mise en place une function qui offre une solution simple et beaucoup plus élégant : wc_get_page_id.
Nous pouvons utiliser cette fonction pour obtenir les URLs des pages comme mon compte, la boutique, le checkout ou le panier. Voilà quelques exemples :
Pour « mon compte » :
<?php echo get_permalink ( wc_get_page_id( 'myaccount' ) ); ?>
Pour la « boutique » :
<?php echo get_permalink ( wc_get_page_id( 'shop' ) ); ?>
Pour le « panier » :
<?php echo get_permalink ( wc_get_page_id( 'cart' ) ); ?>
Pour le « checkout » :
<?php echo get_permalink ( wc_get_page_id( 'checkout' ) ); ?>
Et voilà un exemple réel. Ce code nous montre l’option de « connexion » pour les clients. Le texte du bouton va varier selon l’état de connexion de l’utilisateur. S’il est déjà connecté le bouton va montrer le texte « Mon compte », et s’il ne l’est pas le bouton montrera « Connexion ». Bien évidement nous utilisons la fonction wc_get_page_id pour envoyer l’utilisateur vers la page de « mon compte » :
// Condition pour montrer l'option de compte
if ( is_user_logged_in() ){
$login_text="Mon Compte";
} else{
$login_text="Connexion";
}
// Show menu
?>
<a href="<?php echo get_permalink( wc_get_page_id( 'myaccount' ) ); ?>">
<p> <?php echo $login_text;?> </p>
</a>