Dashboard Widgets and Tiles
This doc goes through the Dashboard widgets one by one: what each shows, its settings, when it hides itself, and the filter you can use to change it. Arrange and switch them on in WooCommerce > Account Portal > Dashboard; click a widget to see its settings below the layout.
Summary boxes#
A row of boxes, each with an icon, a number and a name, for example “12 Orders” or “2 Active subscriptions”. Each box links to its page.

Which boxes there are#
Orders and Downloads (WooCommerce) are always listed. The other boxes appear on the Dashboard tab only while their plugin is active; the tab lists the supported plugins that are not active yet. Supported boxes include:
- Active subscriptions: WooCommerce Subscriptions, YITH WooCommerce Subscription, SUMO Subscriptions, Subscriptions for WooCommerce (WP Swings).
- Active memberships: SureMembers, WooCommerce Memberships, Paid Memberships Pro, MemberPress, YITH WooCommerce Membership, Paid Member Subscriptions, Restrict Content Pro, WishList Member, MemberDash.
- In your wishlist: YITH WooCommerce Wishlist, TI WooCommerce Wishlist. The box links to the portal’s own Wishlist page when that page is in the menu, otherwise to the wishlist plugin’s page.
- Points: WooCommerce Points and Rewards, YITH WooCommerce Points and Rewards.
- Wholesale and B2B: purchase or saved lists, available credit, wallet and quotes from B2BKing, WholesaleX, Whols, Wholesale For WooCommerce and WPC B2B & Wholesale. Boxes marked as wholesale features only show to wholesale customers.
Settings#
- Click Summary boxes on the Dashboard tab.
- Drag the boxes into the order you want and use each switch to turn a box on or off.
- For Downloads, choose when it shows:
- Automatic: hidden when the store sells nothing downloadable (default). A customer who still has downloads from an older order sees the box anyway.
- Always.
- Under Look, choose Cards (icon, big number and name) or Compact (one slim row of pills).
- Click Save Settings.
A box for an account page only shows when that page is in the account menu, so a box never links to a page the customer cannot open. A Custom URL item that points to the account page counts as that page: for example a link to /my-account/subscriptions/, /my-account/members-area/ or /my-account/points-and-rewards/ (relative, or a full URL on this site) added with + Add Custom URL Item shows the Subscriptions, Memberships or Points box. Boxes for plugins with their own account page (Paid Memberships Pro, MemberPress) link there instead and are marked “Links to the plugin’s account page”.
The “does the store sell downloads?” answer for Automatic is cached for 12 hours and cleared whenever a product or variation is saved, trashed or deleted. To decide it yourself, use the wap_store_has_downloads filter.
Add or change boxes in code#
The wap_dashboard_tiles filter receives the boxes and the customer’s user ID. Each box is an array with endpoint, icon, count, label and optionally url (without a URL the box links to the account endpoint). Add this to a child theme’s functions.php or a code snippets plugin:
add_filter( 'wap_dashboard_tiles', function ( $tiles, $user_id ) {
$tiles[] = array(
'endpoint' => 'reviews',
'icon' => 'star',
'count' => (int) get_comments( array( 'user_id' => $user_id, 'count' => true ) ),
'label' => 'Reviews',
'url' => home_url( '/my-reviews/' ),
);
return $tiles;
}, 10, 2 ); icon is any icon name from the icon picker (see Choosing Menu Icons).
Shortcuts#
One tile for every page in the account menu (not the Dashboard itself), each with the menu item’s icon and label and an arrow. There are no settings here: to change which pages show, their names or icons, edit the menu on the Menu Items tab. Items hidden from a customer with Who sees it are left out for that customer too.
Recent orders#
The customer’s latest orders, each with order number, date, status and total, plus a View all link to the Orders page. A customer without orders sees “You have no orders yet.” and a Browse products link to the shop.
| Option | Range | Default |
|---|---|---|
| Orders to show | 1 to 10 | 3 |
The widget only shows when Orders is in the menu.
Next payment#
For WooCommerce Subscriptions: the soonest renewal of the customer’s active subscriptions, with the date, amount, up to two product names and a Manage link to that subscription. When the customer has more active subscriptions, “Other active subscriptions: N” links to the Subscriptions page (when that page is in the menu, also as a Custom URL item that points to it).
Only customers with an active subscription see it, so it is safe to leave on. Without WooCommerce Subscriptions, another plugin can fill it through the wap_next_payment filter by returning an array with time (timestamp), amount (HTML), items, url and more:
add_filter( 'wap_next_payment', function ( $data, $user_id ) {
// Example only: read the renewal from your own subscription plugin.
$next = get_user_meta( $user_id, 'my_next_renewal', true );
if ( ! $next ) {
return $data;
}
return array(
'time' => (int) $next,
'amount' => wc_price( 29 ),
'items' => 'Monthly box',
'url' => wc_get_account_endpoint_url( 'my-subscriptions' ),
'more' => 0,
);
}, 10, 2 ); Getting started#
A short checklist for new customers with a progress bar and “N of N done”. Steps tick themselves off, and each open step links to where it is done. A step only appears when your store uses it:
| Step | Shown when | Done when |
|---|---|---|
| Add your address | Addresses is in the menu | A billing or shipping address is saved |
| Add a profile photo | Account Information is in the menu and profile photos are allowed | The customer uploaded a photo |
| Set up a passkey for faster sign-in | Nahnu Login Shield passkeys are on | The customer has a passkey |
| Save a payment method | Payment methods is in the menu | A payment method is saved |
| Place your first order | Always | The customer has an order |
When every step is done, the checklist disappears for that customer. Change, add or remove steps with the wap_checklist_steps filter (each step: label, done, url).

Buy again#
Products from the customer’s completed orders that can be bought now (published, visible and in stock), newest first, each with image, name, price and your shop’s Add to cart button. A View all link goes to the Orders page when it is in the menu. The widget looks at the 15 most recent completed orders and is hidden when there is nothing to show.
| Option | Range | Default |
|---|---|---|
| Products to show | 1 to 8 | 4 |
Change the list with the wap_buy_again_products filter (array of WC_Product, user ID).
This widget is separate from the “Buy again” button on completed orders in the orders list option on the General tab, which reorders a whole order.
Help & contact and Custom content#
These two widgets show your own texts. See Adding Help and Custom Content to the Dashboard.
Your own widget#
Register a widget with wap_dashboard_widgets and print it with wap_dashboard_widget_{id}. It then appears on the Dashboard tab (switched off at first) and can be moved, resized and given per-role layouts like the built-in ones:
add_filter( 'wap_dashboard_widgets', function ( $widgets ) {
$widgets['loyalty'] = 'Loyalty card';
return $widgets;
} );
add_action( 'wap_dashboard_widget_loyalty', function ( $user_id, $nav_items ) {
echo '<div class="wap-dash-card"><div class="wap-dash-card-head"><h2>Loyalty card</h2></div>';
echo '<p>Your member number: ' . esc_html( $user_id ) . '</p></div>';
}, 10, 2 ); Print nothing to hide the widget for a customer: an empty widget takes no space.
Related#
Was this helpful?
Thanks for your feedback!
✓ Feedback received. Thank you!