I have created a custom action button "Request Refund" on orders page of my-account in WooCommerce. I was looking, is there any way to hide this button after 14-days since order gets completed.
I have searched a lot, but no similar solution. Any help will be appreciated.
Here is my code:
function add_request_refund($actions, $order)
{
if ($order->has_status('completed'))
{
$actions['refund_request'] = array(
'url' => url_of_request_refund($order),
'name' => __('Request Refund', 'my-textdomain'),
);
}
return $actions;
}
add_filter('woocommerce_my_account_my_orders_actions', 'add_request_refund', 100, 2);
function url_of_request_refund($order)
{
$page_id = 4007;
$refund_url = trailingslashit(get_page_link($page_id)) . '?order=' . $order->get_order_number();
return $refund_url;
}
function add_request_refund( $actions, $order ) {
$order_date = $order->order_date;
$getTodayDate = date('m/d/Y');
$date1 = date_create($order_date);
$date2 = date_create($getTodayDate);
//difference between two dates
$diff = date_diff($date2,$date1);
if ( $order->has_status( 'completed' ) && $diff->days < 15 ) {
$actions['refund_request'] = array(
'url' => url_of_request_refund( $order ),
'name' => __( 'Request Refund', 'my-textdomain' ),
);
}
return $actions;
}
add_filter( 'woocommerce_my_account_my_orders_actions', 'add_request_refund', 100, 2 );
function url_of_request_refund( $order ) {
$page_id = 4007;
$refund_url = trailingslashit( get_page_link( $page_id ) ) . '?order=' . $order->get_order_number();
return $refund_url;
}
This should work. Tested at my side!