Untitled

 avatar
unknown
plain_text
a year ago
3.5 kB
23
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...