woocommerce/includes/shortcodes/class-wc-shortcode-order-tr...

78 lines
2.0 KiB
PHP
Raw Normal View History

<?php
/**
* Order Tracking Shortcode
*
* Lets a user see the status of an order by entering their order details.
*
* @author WooThemes
* @category Shortcodes
* @package WooCommerce/Shortcodes/Order_Tracking
* @version 2.3.0
*/
class WC_Shortcode_Order_Tracking {
/**
* Get the shortcode content.
*
* @param array $atts
* @return string
*/
public static function get( $atts ) {
2013-08-09 16:11:15 +00:00
return WC_Shortcodes::shortcode_wrapper( array( __CLASS__, 'output' ), $atts );
}
/**
* Output the shortcode.
*
* @param array $atts
*/
public static function output( $atts ) {
// Check cart class is loaded or abort
if ( is_null( WC()->cart ) ) {
return;
}
extract(shortcode_atts(array(), $atts ) );
global $post;
if ( ! empty( $_REQUEST['orderid'] ) && isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'woocommerce-order_tracking' ) ) {
$order_id = empty( $_REQUEST['orderid'] ) ? 0 : esc_attr( $_REQUEST['orderid'] );
$order_email = empty( $_REQUEST['order_email'] ) ? '' : esc_attr( $_REQUEST['order_email'] ) ;
if ( ! $order_id ) {
2013-01-03 12:21:26 +00:00
echo '<p class="woocommerce-error">' . __( 'Please enter a valid order ID', 'woocommerce' ) . '</p>';
} elseif ( ! $order_email ) {
2013-01-03 12:21:26 +00:00
echo '<p class="woocommerce-error">' . __( 'Please enter a valid order email', 'woocommerce' ) . '</p>';
} else {
$order = wc_get_order( apply_filters( 'woocommerce_shortcode_order_tracking_order_id', $order_id ) );
2016-08-05 14:56:23 +00:00
if ( $order && $order->get_id() && $order_email ) {
2016-08-05 14:57:40 +00:00
if ( strtolower( $order->get_billing_email() ) == strtolower( $order_email ) ) {
2016-08-05 14:56:23 +00:00
do_action( 'woocommerce_track_order', $order->get_id() );
wc_get_template( 'order/tracking.php', array(
'order' => $order,
) );
return;
}
} else {
echo '<p class="woocommerce-error">' . sprintf( __( 'Sorry, we could not find that order ID in our database.', 'woocommerce' ), get_permalink($post->ID ) ) . '</p>';
}
}
}
wc_get_template( 'order/form-tracking.php' );
}
}