Untitled
unknown
plain_text
2 years ago
3.5 kB
30
Indexable
function marketking_refund_button( $order ) {
if ( ! $order || ! $order->has_status( apply_filters( 'marketking_valid_statuses_refunds', array( 'completed','processing','on-hold' ) ) ) || ! is_user_logged_in() ) {
return;
}
// if is checkout / order received, do not show refund button
if ( is_checkout() && !empty( is_wc_endpoint_url('order-received') ) ) {
return;
}
// check time limit for order
$days_limit = get_option('marketking_refund_time_limit_setting', 90);
if (empty($days_limit)){
$days_limit = 90;
}
$order_time = strtotime(explode('T',$order->get_date_created())[0]);
$current_time = time();
$ordervalue = $order->get_total();
// if vendor has refunds enabled or is admin
$vendor_id = marketking()->get_order_vendor($order->get_id());
$vendoruser = new WP_User($vendor_id);
if(marketking()->vendor_has_panel('refunds', $vendor_id) || $vendoruser->has_cap( 'manage_woocommerce' ) ){
if (floatval($order_time+(86400*$days_limit)) > $current_time){
// check if refund already
$refund_requests = get_posts( array(
'post_type' => 'marketking_refund',
'numberposts' => -1,
'post_status' => 'any',
'fields' => 'ids',
'meta_key' => 'order_id',
'meta_value' => $order->get_id(),
));
if (apply_filters('marketking_allow_refund_request_order', true, $order->get_id())){
if (empty($refund_requests)){
?>
<p class="order-again">
<a class="button" id="marketking_request_refund_initial_button"><?php esc_html_e( 'Request refund', 'marketking' ); ?></a>
</p>
<div id="marketking_refund_request_panel">
<input type="hidden" id="marketking_refund_order_id" value="<?php echo esc_attr($order->get_id());?>">
<label class="marketking_refund_label" for="marketking_refund_request_value"><?php esc_html_e('Request value:','marketking');?></label>
<select name="marketking_refund_request_value" id="marketking_refund_request_value">
<option value="full"><?php esc_html_e('Full Order Refund', 'marketking');?></option>
<option value="partial"><?php esc_html_e('Partial Refund', 'marketking');?></option>
</select>
<div id="marketking_refund_partial_container">
<label class="marketking_refund_label" for="marketking_refund_partial_amount"><?php esc_html_e('Partial refund value:','marketking');?></label>
<input type="number" name="marketking_refund_partial_amount" id="marketking_refund_partial_amount" step="0.01" max="<?php echo esc_attr($ordervalue); ?>">
</div>
<label class="marketking_refund_label" for="marketking_refund_request_reason"><?php esc_html_e('Reason for request:','marketking');?></label>
<textarea id="marketking_refund_request_reason"></textarea>
<button type="button" id="marketking_refund_request_send" class="button">
<?php echo apply_filters('marketking_refund_request_send_text', esc_html__('Send refund request','marketking')); ?>
</button>
</div>
<?php
} else {
$refund_endpoint_url = wc_get_endpoint_url(get_option('marketking_refund_endpoint_setting','refund'));
foreach ($refund_requests as $request){
esc_html_e('A refund request has been submitted for this order.','marketking');
echo ' <a href="'.esc_attr($refund_endpoint_url).'?id='.esc_attr($request).'">'.esc_html__('Click to View Request.','marketking').'</a>';
echo '<br><br>';
}
}
}
}
}
}Editor is loading...