En ocasiones necesitamos añadir una nueva pestaña en la página «Mi Cuenta» que nos genera Woocommerce.
Imaginemos por ejemplo una sección dónde añadir un formulario de contacto personalizado de soporte premium para nuestros compradores.
A continuación muestro un código ejemplo en el que se usan los hooks y actions necesarios para conseguirlo.
Podéis ver el artículo original en businessbloomer.
/** * @snippet WooCommerce Add New Tab @ My Account * @how-to Watch tutorial @ https://businessbloomer.com/?p=19055 * @author Rodolfo Melogli * @compatible WooCommerce 3.5.7 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ // ------------------ // 1. Register new endpoint to use for My Account page // Note: Resave Permalinks or it will give 404 error function bbloomer_add_premium_support_endpoint() { add_rewrite_endpoint( 'premium-support', EP_ROOT | EP_PAGES ); } add_action( 'init', 'bbloomer_add_premium_support_endpoint' ); // ------------------ // 2. Add new query var function bbloomer_premium_support_query_vars( $vars ) { $vars[] = 'premium-support'; return $vars; } add_filter( 'query_vars', 'bbloomer_premium_support_query_vars', 0 ); // ------------------ // 3. Insert the new endpoint into the My Account menu function bbloomer_add_premium_support_link_my_account( $items ) { $items['premium-support'] = 'Premium Support'; return $items; } add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_premium_support_link_my_account' ); // ------------------ // 4. Add content to the new endpoint function bbloomer_premium_support_content() { echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>'; echo do_shortcode( ' /* your shortcode here */ ' ); } add_action( 'woocommerce_account_premium-support_endpoint', 'bbloomer_premium_support_content' ); // Note: add_action must follow 'woocommerce_account_{your-endpoint-slug}_endpoint' format