if you want to get last order date for a user so you can create some conditions …etc this may help.
output format is this : 2025-02-21 17:27:46
This code registers a dynamic tag for bricks: {customer_last_order_date}
// {customer_last_order_date}
add_filter('bricks/dynamic_tags_list', 'register_customer_last_order_date_tag');
function register_customer_last_order_date_tag($tags) {
$tags[] = [
'name' => 'customer_last_order_date',
'label' => 'Customer Last Order Date',
'group' => 'Custom Tags',
];
return $tags;
}
// Render the custom dynamic tag for Customer Last Order Date
add_filter('bricks/dynamic_data/render_tag', 'render_customer_last_order_date_tag', 10, 3);
function render_customer_last_order_date_tag($tag, $post, $context = 'text') {
if ($tag !== 'customer_last_order_date') {
return $tag;
}
// Get the current user ID; if not logged in, return nothing
$user_id = get_current_user_id();
if (!$user_id) {
return '';
}
// Retrieve the most recent order for the current user
$args = [
'customer_id' => $user_id,
'limit' => 1,
'orderby' => 'date',
'order' => 'DESC',
'return' => 'ids',
];
$orders = wc_get_orders($args);
if (!empty($orders)) {
$order = wc_get_order($orders[0]);
$date_created = $order->get_date_created();
if ($date_created) {
// Return the formatted date (adjust format as needed)
return $date_created->date('Y-m-d H:i:s');
}
}
// If no orders or no date exists, return an empty string
return '';
}
// Replace the dynamic tag placeholder in the rendered content
add_filter('bricks/dynamic_data/render_content', 'render_customer_last_order_date_tag_in_content', 10, 3);
function render_customer_last_order_date_tag_in_content($content, $post, $context = 'text') {
if (strpos($content, '{customer_last_order_date}') !== false) {
$last_order_date = render_customer_last_order_date_tag('customer_last_order_date', $post, $context);
$content = str_replace('{customer_last_order_date}', $last_order_date, $content);
}
return $content;
}