Créer les nouveaux items au menu
function ch_woocommerce_account_menu_items( $items)
{
$items['item1'] = __( 'Mon item personnalisé 1', 'woocommerce' );
$items['item2'] = __( 'Mon item personnalisé 2', 'woocommerce' );
$items['item3'] = __( 'Mon item personnalisé 3', 'woocommerce' );
return $items ;
}
add_filter('woocommerce_account_menu_items', 'ch_woocommerce_account_menu_items') ;
Configurer les règles de réécritures d’URL
function ch_add_rewrite_endpoint() {
add_rewrite_endpoint( 'item1', EP_PAGES );
add_rewrite_endpoint( 'item2', EP_PAGES );
add_rewrite_endpoint( 'item3', EP_PAGES );
}
add_action( 'init', 'ch_add_rewrite_endpoint' );
Gérer le contenu des pages personnalisées :
Vous pouvez créer des templates personnalisés et les placer dans le dossier de votre thème woocommerce/myaccount/votre-fichier.php (ou ailleurs !) et les appeler de cette manière :
add_action( 'woocommerce_account_item1_endpoint', 'ch_woocommerce_account_item1_endpoint' );
add_action( 'woocommerce_account_item2_endpoint', 'ch_woocommerce_account_item2_endpoint' );
add_action( 'woocommerce_account_item3_endpoint', 'ch_woocommerce_account_item3_endpoint' );
function ch_woocommerce_account_item1_endpoint() {
wc_get_template('myaccount/item1.php', array()) ;
}
function ch_woocommerce_account_item2_endpoint() {
wc_get_template('myaccount/item2.php', array()) ;
}
function ch_woocommerce_account_item3_endpoint() {
wc_get_template('myaccount/item3.php', array()) ;
}
Ou bien afficher votre contenu directement depuis votre fonction :
add_action( 'woocommerce_account_item1_endpoint', 'ch_woocommerce_account_item1_endpoint' );
add_action( 'woocommerce_account_item2_endpoint', 'ch_woocommerce_account_item2_endpoint' );
add_action( 'woocommerce_account_item3_endpoint', 'ch_woocommerce_account_item3_endpoint' );
function ch_woocommerce_account_item1_endpoint() {
echo 'Contenu de ma page 1' ;
}
function ch_woocommerce_account_item2_endpoint() {
echo 'Contenu de ma page 2' ;
}
function ch_woocommerce_account_item3_endpoint() {
echo 'Contenu de ma page 3' ;
}
Comment savoir sur quelle page nous nous trouvons ?
Vous devez d’abord déclarer vos endpoints comme cela :
add_filter("woocommerce_get_query_vars", 'ch_woocommerce_get_query_vars') ;
function ch_woocommerce_get_query_vars( $vars )
{
$vars['item1'] = 'item1';
$vars['item2'] = 'item2';
$vars['item3'] = 'item3';
return $vars;
}
Vous pourrez ensuite savoir si la page courante est la page personnalisée de votre choix, par exemple :
if ( is_wc_endpoint_url('item1' ))
{
echo 'Vous êtes sur la page Item 1';
}
else
{
echo 'Vous n\'êtes pas sur la page Item 1';
}
Si cet article vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !