Skip to content

Instantly share code, notes, and snippets.

@damiencarbery
Created December 20, 2016 21:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save damiencarbery/ef9d618a114ec23411b2ad2b664920c8 to your computer and use it in GitHub Desktop.
Save damiencarbery/ef9d618a114ec23411b2ad2b664920c8 to your computer and use it in GitHub Desktop.
Customise WooCommerce template files in a plugin
<?php
/**
* My Account Dashboard
*
* Shows the first intro screen on the account dashboard.
*
* This template can be overridden by copying it to yourtheme/woocommerce/myaccount/dashboard.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.6.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?>
<p>
<?php
echo sprintf( esc_attr__( 'Hello %s%s%s (not %2$s? %sSign out%s)', 'woocommerce' ), '<strong>', esc_html( $current_user->display_name ), '</strong>', '<a href="' . esc_url( wc_logout_url( wc_get_page_permalink( 'myaccount' ) ) ) . '">', '</a>' );
?>
</p>
<p>
<?php
echo sprintf( esc_attr__( 'From THIS account dashboard you can view your %1$srecent orders%2$s, manage your %3$sshipping and billing addresses%2$s and %4$sedit your password and account details%2$s.', 'woocommerce' ), '<a href="' . esc_url( wc_get_endpoint_url( 'orders' ) ) . '">', '</a>', '<a href="' . esc_url( wc_get_endpoint_url( 'edit-address' ) ) . '">', '<a href="' . esc_url( wc_get_endpoint_url( 'edit-account' ) ) . '">' );
?>
</p>
<?php
/**
* My Account dashboard.
*
* @since 2.6.0
*/
do_action( 'woocommerce_account_dashboard' );
/**
* Deprecated woocommerce_before_my_account action.
*
* @deprecated 2.6.0
*/
do_action( 'woocommerce_before_my_account' );
/**
* Deprecated woocommerce_after_my_account action.
*
* @deprecated 2.6.0
*/
do_action( 'woocommerce_after_my_account' );
?>
<?php
/*
Plugin Name: Customise MyAccount for WooCommerce
Plugin URI: http://www.damiencarbery.com
Description: Customise the MyAccount pages in a plugin.
Author: Damien Carbery
Version: 0.1
$Id: $
*/
add_filter( 'wc_get_template', 'cma_get_template', 10, 5 );
function cma_get_template( $located, $template_name, $args, $template_path, $default_path ) {
if ( 'myaccount/dashboard.php' == $template_name ) {
$located = plugin_dir_path( __FILE__ ) . 'my-dashboard.php';
}
return $located;
}
@damiencarbery
Copy link
Author

The my-dashboard.php file is a copy of woocommerce/templates/myaccount/dashboard.php with "From the account dashboard" changed to "From THIS account dashboard" so that the change could easily be seen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment