1197 lines
39 KiB
PHP
1197 lines
39 KiB
PHP
<?php
|
|
/**
|
|
* Order Details/Add New Order Sections
|
|
*
|
|
* @package EDD
|
|
* @subpackage Admin/Orders
|
|
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
|
* @since 3.0
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/** Publishing ******************************************************************/
|
|
|
|
/**
|
|
* Outputs publishing actions.
|
|
*
|
|
* UI is modelled off block-editor header region.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param EDD\Orders\Order $order Current order.
|
|
*/
|
|
function edd_order_details_publish( $order ) {
|
|
$action_name = edd_is_add_order_page()
|
|
? __( 'Create Order', 'easy-digital-downloads' )
|
|
: __( 'Save Order', 'easy-digital-downloads' )
|
|
?>
|
|
|
|
<div class="edit-post-editor-regions__header">
|
|
<div class="edit-post-header">
|
|
|
|
<div class="edit-post-header__settings">
|
|
<?php if ( edd_is_add_order_page() ) : ?>
|
|
<div class="edd-send-purchase-receipt">
|
|
<div class="edd-form-group">
|
|
<div class="edd-form-group__control">
|
|
<input type="checkbox" name="edd_order_send_receipt" id="edd-order-send-receipt" class="edd-form-group__input" value="1" checked />
|
|
|
|
<label for="edd-order-send-receipt">
|
|
<?php esc_html_e( 'Send Purchase Receipt', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Checking this box will email the purchase receipt to the selected customer.', 'easy-digital-downloads' ); ?>"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div id="publishing-action">
|
|
<span class="spinner"></span>
|
|
<input
|
|
type="submit"
|
|
id="edd-order-submit"
|
|
class="button button-primary right"
|
|
value="<?php echo esc_html( $action_name ); ?>"
|
|
<?php if ( ! edd_is_add_order_page() ) : ?>
|
|
autofocus
|
|
<?php endif; ?>
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edit-post-header__toolbar">
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/** Sections ******************************************************************/
|
|
|
|
/**
|
|
* Contains code to setup tabs & views using EDD\Admin\Order_Sections().
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param mixed $item
|
|
*/
|
|
function edd_order_sections( $item = false ) {
|
|
|
|
// Instantiate the Sections class and sections array
|
|
$sections = new EDD\Admin\Order_Sections();
|
|
|
|
// Setup sections variables
|
|
$sections->use_js = true;
|
|
$sections->current_section = 'customer';
|
|
$sections->item = $item;
|
|
$sections->base_url = '';
|
|
|
|
// Get all registered tabs & views
|
|
$o_sections = edd_get_order_details_sections( $item );
|
|
|
|
// Set the customer sections
|
|
$sections->set_sections( $o_sections );
|
|
|
|
// Display the sections
|
|
$sections->display();
|
|
}
|
|
|
|
/**
|
|
* Return the order details sections.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
* @return array Sections.
|
|
*/
|
|
function edd_get_order_details_sections( $order ) {
|
|
$sections = array(
|
|
array(
|
|
'id' => 'customer',
|
|
'label' => __( 'Customer', 'easy-digital-downloads' ),
|
|
'icon' => 'businessman',
|
|
'callback' => 'edd_order_details_customer',
|
|
),
|
|
array(
|
|
'id' => 'email',
|
|
'label' => __( 'Email', 'easy-digital-downloads' ),
|
|
'icon' => 'email',
|
|
'callback' => 'edd_order_details_email',
|
|
),
|
|
array(
|
|
'id' => 'address',
|
|
'label' => __( 'Address', 'easy-digital-downloads' ),
|
|
'icon' => 'admin-home',
|
|
'callback' => 'edd_order_details_addresses',
|
|
),
|
|
array(
|
|
'id' => 'notes',
|
|
'label' => __( 'Notes', 'easy-digital-downloads' ),
|
|
'icon' => 'admin-comments',
|
|
'callback' => 'edd_order_details_notes',
|
|
),
|
|
array(
|
|
'id' => 'logs',
|
|
'label' => __( 'Logs', 'easy-digital-downloads' ),
|
|
'icon' => 'admin-tools',
|
|
'callback' => 'edd_order_details_logs',
|
|
),
|
|
);
|
|
|
|
// Override sections if adding a new order.
|
|
if ( edd_is_add_order_page() ) {
|
|
$sections = array(
|
|
array(
|
|
'id' => 'customer',
|
|
'label' => __( 'Customer', 'easy-digital-downloads' ),
|
|
'icon' => 'businessman',
|
|
'callback' => 'edd_order_details_customer',
|
|
),
|
|
array(
|
|
'id' => 'address',
|
|
'label' => __( 'Address', 'easy-digital-downloads' ),
|
|
'icon' => 'admin-home',
|
|
'callback' => 'edd_order_details_addresses',
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Filter the sections.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $sections Sections.
|
|
* @param object $order Order object.
|
|
*/
|
|
return (array) apply_filters( 'edd_get_order_details_sections', $sections, $order );
|
|
}
|
|
|
|
/**
|
|
* Output the order details customer section
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_customer( $order ) {
|
|
$customer = edd_get_customer( $order->customer_id );
|
|
$payment = edd_get_payment( $order->id );
|
|
$user_info = $payment
|
|
? $payment->user_info
|
|
: array();
|
|
|
|
$change_text = edd_is_add_order_page()
|
|
? esc_html__( 'Assign', 'easy-digital-downloads' )
|
|
: esc_html__( 'Switch Customer', 'easy-digital-downloads' );
|
|
|
|
$customer_id = ! empty( $customer )
|
|
? $customer->id
|
|
: 0; ?>
|
|
|
|
<div>
|
|
<div class="column-container order-customer-info">
|
|
<div class="column-container change-customer">
|
|
<div class="edd-form-group">
|
|
<label for="customer_id" class="edd-form-group__label"><?php esc_html_e( 'Assign to an existing customer', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<?php
|
|
echo EDD()->html->customer_dropdown(
|
|
array(
|
|
'class' => 'edd-payment-change-customer-input edd-form-group__input',
|
|
'selected' => $customer_id,
|
|
'id' => 'customer-id',
|
|
'name' => 'customer-id',
|
|
'none_selected' => esc_html__( 'Search for a customer', 'easy-digital-downloads' ),
|
|
'placeholder' => esc_html__( 'Search for a customer', 'easy-digital-downloads' ),
|
|
)
|
|
); // WPCS: XSS ok.
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" name="current-customer-id" value="<?php echo esc_attr( $customer_id ); ?>" />
|
|
<?php wp_nonce_field( 'edd_customer_details_nonce', 'edd_customer_details_nonce' ); ?>
|
|
</div>
|
|
|
|
<div class="customer-details-wrap" style="display: <?php echo esc_attr( ! empty( $customer ) ? 'flex' : 'none' ); ?>">
|
|
<div class="avatar-wrap" id="customer-avatar">
|
|
<span class="spinner is-active"></span>
|
|
</div>
|
|
<div class="customer-details" style="display: none;">
|
|
<strong class="customer-name"></strong>
|
|
<em class="customer-since">
|
|
<?php
|
|
echo wp_kses(
|
|
sprintf(
|
|
__( 'Customer since %s', 'easy-digital-downloads' ), '<span>…</span>' ),
|
|
array(
|
|
'span' => true,
|
|
)
|
|
);
|
|
?>
|
|
</em>
|
|
|
|
<span class="customer-record">
|
|
<a href="<?php echo esc_url( edd_get_admin_url( array( 'page' => 'edd-customers' ) ) ); ?>"><?php esc_html_e( 'View customer record', 'easy-digital-downloads' ); ?></a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="description">
|
|
or <button class="edd-payment-new-customer button-link"><?php esc_html_e( 'create a new customer', 'easy-digital-downloads' ); ?></button>
|
|
</p>
|
|
</div>
|
|
|
|
<div class="column-container new-customer" style="display: none">
|
|
<p style="margin-top: 0;">
|
|
<input type="hidden" id="edd-new-customer" name="edd-new-customer" value="0" />
|
|
<button class="edd-payment-new-customer-cancel button-link"><?php esc_html_e( '← Use an existing customer', 'easy-digital-downloads' ); ?></button>
|
|
</p>
|
|
|
|
<div class="edd-form-group">
|
|
<label class="edd-form-group__label" for="edd_new_customer_first_name">
|
|
<?php esc_html_e( 'First Name', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
|
|
<div class="edd-form-group__control">
|
|
<input type="text" id="edd_new_customer_first_name" name="edd-new-customer-first-name" value="" class="edd-form-group__input regular-text" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label class="edd-form-group__label" for="edd_new_customer_last_name">
|
|
<?php esc_html_e( 'Last Name', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
|
|
<div class="edd-form-group__control">
|
|
<input type="text" id="edd_new_customer_last_name" name="edd-new-customer-last-name" value="" class="edd-form-group__input regular-text" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label class="edd-form-group__label" for="edd_new_customer_email">
|
|
<?php esc_html_e( 'Email', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
|
|
<div class="edd-form-group__control">
|
|
<input type="email" id="edd_new_customer_email" name="edd-new-customer-email" value="" class="edd-form-group__input regular-text" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
|
|
// The edd_payment_personal_details_list hook is left here for backwards compatibility
|
|
if ( ! edd_is_add_order_page() && $payment instanceof EDD_Payment ) {
|
|
do_action( 'edd_payment_personal_details_list', $payment->get_meta(), $user_info );
|
|
}
|
|
do_action( 'edd_payment_view_details', $order->id );
|
|
}
|
|
|
|
/**
|
|
* Output the order details email section
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_email( $order ) {
|
|
$customer = edd_get_customer( $order->customer_id );
|
|
$all_emails = array( 'primary' => $customer->email );
|
|
|
|
foreach ( $customer->emails as $key => $email ) {
|
|
if ( $customer->email === $email ) {
|
|
continue;
|
|
}
|
|
|
|
$all_emails[ $key ] = $email;
|
|
}
|
|
|
|
$help = __( 'Send a new copy of the purchase receipt to the email address used for this order. If download URLs were included in the original receipt, new ones will be included.', 'easy-digital-downloads' );
|
|
?>
|
|
|
|
<div>
|
|
<?php
|
|
if ( ! empty( $customer->emails ) && count( (array) $customer->emails ) > 1 ) : ?>
|
|
<fieldset class="edd-form-group">
|
|
<legend class="edd-form-group__label">
|
|
<?php _e( 'Send email receipt to', 'easy-digital-downloads' ); ?>
|
|
</legend>
|
|
|
|
<?php foreach ( $all_emails as $key => $email ) : ?>
|
|
<div class="edd-form-group__control is-radio">
|
|
<input id="<?php echo rawurlencode( sanitize_email( $email ) ); ?>" class="edd-form-group__input edd-order-resend-receipt-email" name="edd-order-resend-receipt-address" type="radio" value="<?php echo rawurlencode( sanitize_email( $email ) ); ?>" <?php checked( true, ( 'primary' === $key ) ); ?> />
|
|
|
|
<label for="<?php echo rawurlencode( sanitize_email( $email ) ); ?>">
|
|
<?php echo esc_attr( $email ); ?>
|
|
</label>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
|
|
<p class="edd-form-group__help description">
|
|
<?php echo esc_html( $help ); ?>
|
|
</p>
|
|
</fieldset>
|
|
|
|
<?php else : ?>
|
|
|
|
<div class="edd-form-group">
|
|
<label class="edd-form-group__label screen-reader-text" for="<?php echo esc_attr( $order->email ); ?>">
|
|
<?php esc_html_e( 'Email Address', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
|
|
<div class="edd-form-group__control">
|
|
<input readonly type="email" id="<?php echo esc_attr( $order->email ); ?>" class="edd-form-group__input regular-text" value="<?php echo esc_attr( $order->email ); ?>" />
|
|
</div>
|
|
|
|
<p class="edd-form-group__help description">
|
|
<?php echo esc_html( $help ); ?>
|
|
</p>
|
|
</div>
|
|
|
|
<?php endif; ?>
|
|
|
|
<p>
|
|
<a href="<?php echo esc_url( add_query_arg( array(
|
|
'edd-action' => 'email_links',
|
|
'purchase_id' => absint( $order->id ),
|
|
) ) ); ?>" id="<?php if ( ! empty( $customer->emails ) && count( (array) $customer->emails ) > 1 ) {
|
|
echo esc_attr( 'edd-select-receipt-email' );
|
|
} else {
|
|
echo esc_attr( 'edd-resend-receipt' );
|
|
} ?>" class="button button-secondary"><?php esc_html_e( 'Resend Receipt', 'easy-digital-downloads' ); ?></a>
|
|
</p>
|
|
|
|
<?php do_action( 'edd_view_order_details_resend_receipt_after', $order->id ); ?>
|
|
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Output the order details addresses section
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_addresses( $order ) {
|
|
$address = edd_is_add_order_page()
|
|
? (object) array(
|
|
'id' => 0,
|
|
'order_id' => 0,
|
|
'first_name' => '',
|
|
'last_name' => '',
|
|
'address' => '',
|
|
'address2' => '',
|
|
'city' => '',
|
|
'region' => '',
|
|
'postal_code' => '',
|
|
'country' => '',
|
|
)
|
|
: $order->get_address(); ?>
|
|
|
|
<div id="edd-order-address">
|
|
<?php do_action( 'edd_view_order_details_billing_before', $order->id ); ?>
|
|
|
|
<div class="order-data-address">
|
|
<h3><?php esc_html_e( 'Billing Address', 'easy-digital-downloads' ); ?></h3>
|
|
|
|
<div class="customer-address-select-wrap edd-form-group" style="display: none; padding: 16px 0; border-bottom: 1px solid #ccd0d4;">
|
|
<label for="edd_customer_existing_addresses" class="edd-form-group__label"><?php esc_html_e( 'Existing Address:', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control"></div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_address" class="edd-form-group__label"><?php esc_html_e( 'Line 1:', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="edd_order_address[address]" id="edd_order_address_address" class="edd-form-group__input regular-text" value="<?php echo esc_attr( $address->address ); ?>" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_address2" class="edd-form-group__label"><?php esc_html_e( 'Line 2:', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="edd_order_address[address2]" class="edd-form-group__input regular-text" id="edd_order_address_address2" value="<?php echo esc_attr( $address->address2 ); ?>" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_city" class="edd-form-group__label"><?php echo esc_html_x( 'City:', 'Address City', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="edd_order_address[city]" class="edd-form-group__input regular-text" id="edd_order_address_city" value="<?php echo esc_attr( $address->city ); ?>" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_postal_code" class="edd-form-group__label"><?php echo esc_html_x( 'Zip / Postal Code:', 'Zip / Postal code of address', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="edd_order_address[postal_code]" class="edd-form-group__input regular-text" id="edd_order_address_postal_code" value="<?php echo esc_attr( $address->postal_code ); ?>" class="med-text" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_country" class="edd-form-group__label"><?php echo esc_html_x( 'Country:', 'Address country', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control" id="edd-order-address-country-wrap">
|
|
<?php
|
|
echo EDD()->html->country_select(
|
|
array(
|
|
'name' => 'edd_order_address[country]',
|
|
'id' => 'edd-order-address-country',
|
|
'class' => 'edd-order-address-country edd-form-group__input',
|
|
'show_option_all' => false,
|
|
'data' => array(
|
|
'nonce' => wp_create_nonce( 'edd-country-field-nonce' ),
|
|
'search-type' => 'no_ajax',
|
|
'search-placeholder' => esc_html__( 'Search Countries', 'easy-digital-downloads' ),
|
|
),
|
|
),
|
|
$address->country
|
|
); // WPCS: XSS ok.
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-form-group">
|
|
<label for="edd_order_address_region" class="edd-form-group__label"><?php echo esc_html_x( 'Region:', 'Region of address', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control" id="edd-order-address-state-wrap">
|
|
<?php
|
|
$states = edd_get_shop_states( $address->country );
|
|
if ( ! empty( $states ) ) {
|
|
echo EDD()->html->region_select(
|
|
array(
|
|
'name' => 'edd_order_address[region]',
|
|
'id' => 'edd_order_address_region',
|
|
'class' => 'edd-order-address-region edd-form-group__input',
|
|
'data' => array(
|
|
'search-type' => 'no_ajax',
|
|
'search-placeholder' => esc_html__( 'Search Regions', 'easy-digital-downloads' ),
|
|
),
|
|
),
|
|
$address->country,
|
|
$address->region
|
|
); // WPCS: XSS ok.
|
|
} else {
|
|
?>
|
|
<input type="text" id="edd_order_address_region" name="edd_order_address[region]" class="edd-form-group__input" value="<?php echo esc_attr( $address->region ); ?>" />
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" name="edd_order_address[address_id]" value="<?php echo esc_attr( $address->id ); ?>" />
|
|
<?php wp_nonce_field( 'edd_get_tax_rate_nonce', 'edd_get_tax_rate_nonce' ); ?>
|
|
</div>
|
|
|
|
</div><!-- /#edd-order-address -->
|
|
|
|
<?php
|
|
do_action( 'edd_payment_billing_details', $order->id );
|
|
}
|
|
|
|
/**
|
|
* Output the order details notes section
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_notes( $order ) {
|
|
$notes = edd_get_payment_notes( $order->id ); ?>
|
|
|
|
<div>
|
|
<?php echo edd_admin_get_notes_html( $notes ); // WPCS: XSS ok. ?>
|
|
<?php echo edd_admin_get_new_note_form( $order->id, 'order' ); // WPCS: XSS ok. ?>
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Outputs the Order Details logs section.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param \EDD\Orders\Order $order
|
|
*/
|
|
function edd_order_details_logs( $order ) {
|
|
?>
|
|
|
|
<div>
|
|
<?php
|
|
/**
|
|
* Allows output before the list of logs.
|
|
*
|
|
* @since 3.0.0
|
|
*
|
|
* @param int $order_id ID of the current order.
|
|
*/
|
|
do_action( 'edd_view_order_details_logs_before', $order->id );
|
|
$download_log_url = edd_get_admin_url(
|
|
array(
|
|
'page' => 'edd-tools',
|
|
'tab' => 'logs',
|
|
'payment' => absint( $order->id ),
|
|
)
|
|
);
|
|
$customer_log_url = edd_get_admin_url(
|
|
array(
|
|
'page' => 'edd-tools',
|
|
'tab' => 'logs',
|
|
'customer' => absint( $order->customer_id ),
|
|
)
|
|
);
|
|
$customer_orders_url = edd_get_admin_url(
|
|
array(
|
|
'page' => 'edd-payment-history',
|
|
'customer' => absint( $order->customer_id ),
|
|
)
|
|
);
|
|
?>
|
|
|
|
<p><a href="<?php echo esc_url( $download_log_url ); ?>"><?php esc_html_e( 'File Download Log for Order', 'easy-digital-downloads' ); ?></a></p>
|
|
<p><a href="<?php echo esc_url( $customer_log_url ); ?>"><?php esc_html_e( 'Customer Download Log', 'easy-digital-downloads' ); ?></a></p>
|
|
<p><a href="<?php echo esc_url( $customer_orders_url ); ?>"><?php esc_html_e( 'Customer Orders', 'easy-digital-downloads' ); ?></a></p>
|
|
|
|
<?php
|
|
/**
|
|
* Allows further output after the list of logs.
|
|
*
|
|
* @since 3.0.0
|
|
*
|
|
* @param int $order_id ID of the current order.
|
|
*/
|
|
do_action( 'edd_view_order_details_logs_after', $order->id );
|
|
?>
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/** Main **********************************************************************/
|
|
|
|
/**
|
|
* Output the order details items box
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_overview( $order ) {
|
|
$_items = array();
|
|
$_adjustments = array();
|
|
$_refunds = array();
|
|
|
|
if ( true !== edd_is_add_order_page() ) {
|
|
$items = edd_get_order_items( array(
|
|
'order_id' => $order->id,
|
|
'number' => 999,
|
|
) );
|
|
|
|
foreach ( $items as $item ) {
|
|
$item_adjustments = array();
|
|
|
|
$adjustments = edd_get_order_adjustments( array(
|
|
'object_id' => $item->id,
|
|
'number' => 999,
|
|
'object_type' => 'order_item',
|
|
'type' => array(
|
|
'discount',
|
|
'credit',
|
|
'fee',
|
|
),
|
|
) );
|
|
|
|
foreach ( $adjustments as $adjustment ) {
|
|
// @todo edd_get_order_adjustment_to_json()?
|
|
$adjustment_args = array(
|
|
'id' => esc_html( $adjustment->id ),
|
|
'objectId' => esc_html( $adjustment->object_id ),
|
|
'objectType' => esc_html( $adjustment->object_type ),
|
|
'typeId' => esc_html( $adjustment->type_id ),
|
|
'type' => esc_html( $adjustment->type ),
|
|
'description' => esc_html( $adjustment->description ),
|
|
'subtotal' => esc_html( $adjustment->subtotal ),
|
|
'tax' => esc_html( $adjustment->tax ),
|
|
'total' => esc_html( $adjustment->total ),
|
|
'dateCreated' => esc_html( $adjustment->date_created ),
|
|
'dateModified' => esc_html( $adjustment->date_modified ),
|
|
'uuid' => esc_html( $adjustment->uuid ),
|
|
);
|
|
|
|
$item_adjustments[] = $adjustment_args;
|
|
$_adjustments[] = $adjustment_args;
|
|
}
|
|
|
|
// @todo edd_get_order_item_to_json()?
|
|
$_items[] = array(
|
|
'id' => esc_html( $item->id ),
|
|
'orderId' => esc_html( $item->order_id ),
|
|
'productId' => esc_html( $item->product_id ),
|
|
'productName' => esc_html( $item->get_order_item_name() ),
|
|
'priceId' => esc_html( $item->price_id ),
|
|
'cartIndex' => esc_html( $item->cart_index ),
|
|
'type' => esc_html( $item->type ),
|
|
'status' => esc_html( $item->status ),
|
|
'statusLabel' => esc_html( edd_get_status_label( $item->status ) ),
|
|
'quantity' => esc_html( $item->quantity ),
|
|
'amount' => esc_html( $item->amount ),
|
|
'subtotal' => esc_html( $item->subtotal ),
|
|
'discount' => esc_html( $item->discount ),
|
|
'tax' => esc_html( $item->tax ),
|
|
'total' => esc_html( $item->total ),
|
|
'dateCreated' => esc_html( $item->date_created ),
|
|
'dateModified' => esc_html( $item->date_modified ),
|
|
'uuid' => esc_html( $item->uuid ),
|
|
'deliverable' => $item->is_deliverable(),
|
|
'adjustments' => $item_adjustments,
|
|
);
|
|
}
|
|
|
|
$adjustments = edd_get_order_adjustments( array(
|
|
'object_id' => $order->id,
|
|
'number' => 999,
|
|
'object_type' => 'order',
|
|
'type' => array(
|
|
'discount',
|
|
'credit',
|
|
'fee',
|
|
),
|
|
) );
|
|
|
|
foreach ( $adjustments as $adjustment ) {
|
|
// @todo edd_get_order_adjustment_to_json()?
|
|
$_adjustments[] = array(
|
|
'id' => esc_html( $adjustment->id ),
|
|
'objectId' => esc_html( $adjustment->object_id ),
|
|
'objectType' => esc_html( $adjustment->object_type ),
|
|
'typeId' => esc_html( $adjustment->type_id ),
|
|
'type' => esc_html( $adjustment->type ),
|
|
'description' => esc_html( $adjustment->description ),
|
|
'subtotal' => esc_html( $adjustment->subtotal ),
|
|
'tax' => esc_html( $adjustment->tax ),
|
|
'total' => esc_html( $adjustment->total ),
|
|
'dateCreated' => esc_html( $adjustment->date_created ),
|
|
'dateModified' => esc_html( $adjustment->date_modified ),
|
|
'uuid' => esc_html( $adjustment->uuid ),
|
|
);
|
|
}
|
|
|
|
$refunds = edd_get_order_refunds( $order->id );
|
|
|
|
foreach ( $refunds as $refund ) {
|
|
$_refunds[] = array(
|
|
'id' => esc_html( $refund->id ),
|
|
'number' => esc_html( $refund->order_number ),
|
|
'total' => esc_html( $refund->total ),
|
|
'dateCreated' => esc_html( $refund->date_created ),
|
|
'dateCreatedi18n' => esc_html( edd_date_i18n( $refund->date_created ) ),
|
|
'uuid' => esc_html( $refund->uuid ),
|
|
);
|
|
}
|
|
}
|
|
|
|
$has_tax = 'none';
|
|
$tax_rate = $order->id ? $order->get_tax_rate() : false;
|
|
|
|
$location = array(
|
|
'rate' => $tax_rate,
|
|
'country' => '',
|
|
'region' => '',
|
|
'inclusive' => edd_prices_include_tax(),
|
|
);
|
|
|
|
if ( edd_is_add_order_page() && edd_use_taxes() ) {
|
|
$default_rate = edd_get_tax_rate_by_location(
|
|
array(
|
|
'country' => '',
|
|
'region' => '',
|
|
)
|
|
);
|
|
if ( $default_rate ) {
|
|
$location['rate'] = floatval( $default_rate->amount );
|
|
}
|
|
$has_tax = $location;
|
|
} elseif ( $tax_rate ) {
|
|
$has_tax = $location;
|
|
$has_tax['rate'] = $tax_rate;
|
|
|
|
if ( $order->tax_rate_id ) {
|
|
$tax_rate_object = $order->get_tax_rate_object();
|
|
|
|
if ( $tax_rate_object ) {
|
|
$has_tax['country'] = $tax_rate_object->name;
|
|
$has_tax['region'] = $tax_rate_object->description;
|
|
}
|
|
}
|
|
}
|
|
|
|
$has_quantity = true;
|
|
if ( edd_is_add_order_page() && ! edd_item_quantities_enabled() ) {
|
|
$has_quantity = false;
|
|
}
|
|
|
|
wp_localize_script(
|
|
'edd-admin-orders',
|
|
'eddAdminOrderOverview',
|
|
array(
|
|
'items' => $_items,
|
|
'adjustments' => $_adjustments,
|
|
'refunds' => $_refunds,
|
|
'isAdding' => true === edd_is_add_order_page(),
|
|
'hasQuantity' => $has_quantity,
|
|
'hasTax' => $has_tax,
|
|
'hasDiscounts' => true === edd_has_active_discounts(),
|
|
'order' => array(
|
|
'status' => $order->status,
|
|
'currency' => $order->currency,
|
|
'currencySymbol' => html_entity_decode( edd_currency_symbol( $order->currency ) ),
|
|
'subtotal' => $order->subtotal,
|
|
'discount' => $order->discount,
|
|
'tax' => $order->tax,
|
|
'total' => $order->total,
|
|
),
|
|
'nonces' => array(
|
|
'edd_admin_order_get_item_amounts' => wp_create_nonce( 'edd_admin_order_get_item_amounts' ),
|
|
),
|
|
'i18n' => array(
|
|
'closeText' => esc_html__( 'Close', 'easy-digital-downloads' ),
|
|
),
|
|
)
|
|
);
|
|
|
|
$templates = array(
|
|
'actions',
|
|
'subtotal',
|
|
'tax',
|
|
'total',
|
|
'item',
|
|
'adjustment',
|
|
'adjustment-discount',
|
|
'refund',
|
|
'no-items',
|
|
'copy-download-link',
|
|
'form-add-order-item',
|
|
'form-add-order-discount',
|
|
'form-add-order-adjustment',
|
|
);
|
|
|
|
foreach ( $templates as $tmpl ) {
|
|
echo '<script type="text/html" id="tmpl-edd-admin-order-' . esc_attr( $tmpl ) . '">';
|
|
require_once EDD_PLUGIN_DIR . 'includes/admin/views/tmpl-order-' . $tmpl . '.php';
|
|
echo '</script>';
|
|
}
|
|
?>
|
|
|
|
<div id="edd-order-overview" class="postbox edd-edit-purchase-element edd-order-overview">
|
|
<table id="edd-order-overview-summary" class="widefat wp-list-table edd-order-overview-summary">
|
|
<thead>
|
|
<tr>
|
|
<th class="column-name column-primary"><?php echo esc_html( edd_get_label_singular() ); ?></th>
|
|
<th class="column-amount"><?php esc_html_e( 'Unit Price', 'easy-digital-downloads' ); ?></th>
|
|
<?php if ( $has_quantity ) : ?>
|
|
<th class="column-quantity"><?php esc_html_e( 'Quantity', 'easy-digital-downloads' ); ?></th>
|
|
<?php endif; ?>
|
|
<th class="column-subtotal column-right"><?php esc_html_e( 'Amount', 'easy-digital-downloads' ); ?></th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
|
|
<div id="edd-order-overview-actions" class="edd-order-overview-actions inside"></div>
|
|
</div>
|
|
|
|
<?php
|
|
|
|
/**
|
|
* @since unknown
|
|
*/
|
|
do_action( 'edd_view_order_details_files_after', $order->id );
|
|
}
|
|
|
|
/**
|
|
* Output the order details sections box
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_sections( $order ) {
|
|
?>
|
|
|
|
<div id="edd-customer-details" class="postbox">
|
|
<h2 class="hndle">
|
|
<span><?php esc_html_e( 'Order Details', 'easy-digital-downloads' ); ?></span>
|
|
</h2>
|
|
<?php edd_order_sections( $order ); ?>
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/** Sidebar *******************************************************************/
|
|
|
|
/**
|
|
* Output the order details extras box
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_extras( $order = false ) {
|
|
$transaction_id = ! empty( $order->id )
|
|
? $order->get_transaction_id()
|
|
: '';
|
|
|
|
$unlimited = ! empty( $order->id )
|
|
? $order->has_unlimited_downloads()
|
|
: false;
|
|
|
|
$readonly = ! empty( $order->id )
|
|
? 'readonly'
|
|
: '';
|
|
|
|
// Setup gateway list.
|
|
if ( empty( $order->id ) ) {
|
|
$known_gateways = edd_get_payment_gateways();
|
|
|
|
$gateways = array();
|
|
|
|
foreach ( $known_gateways as $id => $data ) {
|
|
$gateways[ $id ] = esc_html( $data['admin_label'] );
|
|
}
|
|
}
|
|
|
|
// Filter the transaction ID (here specifically for back-compat)
|
|
if ( ! empty( $transaction_id ) ) {
|
|
$transaction_id = apply_filters( 'edd_payment_details_transaction_id-' . $order->gateway, $transaction_id, $order->id );
|
|
} ?>
|
|
|
|
<div id="edd-order-extras" class="postbox edd-order-data">
|
|
<h2 class="hndle">
|
|
<span><?php esc_html_e( 'Order Extras', 'easy-digital-downloads' ); ?></span>
|
|
</h2>
|
|
|
|
<div class="inside">
|
|
<div class="edd-admin-box">
|
|
<?php do_action( 'edd_view_order_details_payment_meta_before', $order->id ); ?>
|
|
|
|
|
|
<?php if ( ! edd_is_add_order_page() ) : ?>
|
|
<div class="edd-order-gateway edd-admin-box-inside edd-admin-box-inside--row">
|
|
<span class="label"><?php esc_html_e( 'Gateway', 'easy-digital-downloads' ); ?></span>
|
|
<span class="value"><?php echo edd_get_gateway_admin_label( $order->gateway ); ?></span>
|
|
</div>
|
|
<?php else : ?>
|
|
<div class="edd-order-gateway edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label for="edd_gateway_select" class="edd-form-group__label"><?php esc_html_e( 'Gateway', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<?php
|
|
echo EDD()->html->select(
|
|
array(
|
|
'name' => 'gateway',
|
|
'class' => 'edd-form-group__input',
|
|
'id' => 'edd_gateway_select',
|
|
'options' => $gateways,
|
|
'selected' => 'manual',
|
|
'show_option_none' => false,
|
|
'show_option_all' => false,
|
|
)
|
|
); // WPCS: XSS ok.
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label for="edd_payment_key" class="edd-form-group__label"><?php esc_html_e( 'Key', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="payment_key" id="edd_payment_key" class="edd-form-group__input regular-text" <?php echo esc_attr( $readonly ); ?> value="<?php echo esc_attr( $order->payment_key ); ?>" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php if ( edd_is_add_order_page() ) : ?>
|
|
<div class="edd-order-ip edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label for="edd_ip" class="edd-form-group__label"><?php esc_html_e( 'IP', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="ip" id="edd_ip" class="edd-form-group__input" value="<?php echo esc_attr( edd_get_ip() ); ?>" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php else : ?>
|
|
<div class="edd-order-gateway edd-admin-box-inside edd-admin-box-inside--row">
|
|
<span class="label"><?php esc_html_e( 'IP', 'easy-digital-downloads' ); ?></span>
|
|
<span class="value"><?php echo edd_payment_get_ip_address_url( $order->id ); // WPCS: XSS ok. ?></span>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<?php if ( $transaction_id ) : ?>
|
|
<div class="edd-order-tx-id edd-admin-box-inside edd-admin-box-inside--row">
|
|
<span class="label"><?php esc_html_e( 'Transaction ID', 'easy-digital-downloads' ); ?></span>
|
|
<span><?php echo $transaction_id; ?></span>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<?php if ( edd_is_add_order_page() ) : ?>
|
|
<div class="edd-order-tx-id edd-admin-box-inside edd-admin-box-inside--row">
|
|
<div class="edd-form-group">
|
|
<label for="edd_transaction_id" class="edd-form-group__label"><?php esc_html_e( 'Transaction ID', 'easy-digital-downloads' ); ?></label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" name="transaction_id" class="edd-form-group__input" id="edd_transaction_id" value="" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="edd-unlimited-downloads edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<div class="edd-form-group__control">
|
|
<input type="checkbox" name="edd-unlimited-downloads" id="edd_unlimited_downloads" class="edd-form-group__input" value="1"<?php checked( true, $unlimited, true ); ?>/>
|
|
|
|
<label for="edd_unlimited_downloads">
|
|
<?php esc_html_e( 'Unlimited Downloads', 'easy-digital-downloads' ); ?></label>
|
|
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Checking this box will override all other file download limits for this purchase, granting the customer unlimited downloads of all files included on the purchase.', 'easy-digital-downloads' ); ?>"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php do_action( 'edd_view_order_details_payment_meta_after', $order->id ); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Output the order details attributes box
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param object $order
|
|
*/
|
|
function edd_order_details_attributes( $order ) {
|
|
|
|
$recovery_url = edd_is_add_order_page()
|
|
? ''
|
|
: edd_get_payment( $order->id )->get_recovery_url();
|
|
|
|
$order_date = edd_get_edd_timezone_equivalent_date_from_utc( EDD()->utils->date( $order->date_created, 'utc', true ) );
|
|
|
|
?>
|
|
|
|
<div id="edd-order-update" class="postbox edd-order-data">
|
|
<h2 class="hndle">
|
|
<span><?php esc_html_e( 'Order Attributes', 'easy-digital-downloads' ); ?></span>
|
|
</h2>
|
|
|
|
<div class="inside">
|
|
<div class="edd-order-update-box edd-admin-box">
|
|
<div class="edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label for="edd_payment_status" class="edd-form-group__label">
|
|
<?php
|
|
esc_html_e( 'Status', 'easy-digital-downloads' );
|
|
|
|
$status_help = '<ul>';
|
|
$status_help .= '<li>' . __( '<strong>Pending</strong>: order is still processing or was abandoned by customer. Successful orders will be marked as Complete automatically once processing is finalized.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '<li>' . __( '<strong>Complete</strong>: all processing is completed for this purchase.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '<li>' . __( '<strong>Revoked</strong>: access to purchased items is disabled, perhaps due to policy violation or fraud.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '<li>' . __( '<strong>Refunded</strong>: the purchase amount is returned to the customer and access to items is disabled.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '<li>' . __( '<strong>Abandoned</strong>: the purchase attempt was not completed by the customer.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '<li>' . __( '<strong>Failed</strong>: customer clicked Cancel before completing the purchase.', 'easy-digital-downloads' ) . '</li>';
|
|
$status_help .= '</ul>';
|
|
?>
|
|
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php echo $status_help; // WPCS: XSS ok. ?>"></span>
|
|
</label>
|
|
<div class="edd-form-group__control">
|
|
<select name="edd-payment-status" id="edd_payment_status" class="edd-form-group__input">
|
|
<?php foreach ( edd_get_payment_statuses() as $key => $status ) : ?>
|
|
<option value="<?php echo esc_attr( $key ); ?>"<?php selected( $order->status, $key, true ); ?>><?php echo esc_html( $status ); ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
if ( ! edd_is_add_order_page() ) :
|
|
$trash_url = wp_nonce_url(
|
|
edd_get_admin_url( array(
|
|
'page' => 'edd-payment-history',
|
|
'order_type' => 'sale',
|
|
'edd-action' => 'trash_order',
|
|
'purchase_id' => absint( $order->id ),
|
|
) ),
|
|
'edd_payment_nonce'
|
|
);
|
|
?>
|
|
<div style="margin-top: 8px;">
|
|
<a href="<?php echo esc_url( $trash_url ); ?>" class="edd-delete-payment edd-delete">
|
|
<?php esc_html_e( 'Move to Trash', 'easy-digital-downloads' ); ?>
|
|
</a>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if ( ! edd_is_add_order_page() && edd_is_order_recoverable( $order->id ) && ! empty( $recovery_url ) ) : ?>
|
|
<div class="edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label class="edd-form-group__label" for="edd_recovery_url">
|
|
<?php esc_html_e( 'Recover', 'easy-digital-downloads' ); ?>
|
|
<span alt="f223" class="edd-help-tip dashicons dashicons-editor-help" title="<?php esc_html_e( 'Pending and abandoned payments can be resumed by the customer, using this custom URL. Payments can be resumed only when they do not have a transaction ID from the gateway.', 'easy-digital-downloads' ); ?>"></span>
|
|
</label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" class="edd-form-group__input" id="edd_recovery_url" readonly="readonly" value="<?php echo esc_url( $recovery_url ); ?>"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="edd-admin-box-inside">
|
|
<div class="edd-form-group">
|
|
<label for="edd-payment-date" class="edd-form-group__label"><?php esc_html_e( 'Date', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
<div class="edd-form-group__control">
|
|
<input type="text" id="edd-payment-date" class="edd-form-group__input edd_datepicker" name="edd-payment-date" value="<?php echo esc_attr( $order_date->format( 'Y-m-d' ) ); ?>"placeholder="<?php echo esc_attr( edd_get_date_picker_format() ); ?>"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="edd-admin-box-inside">
|
|
<fieldset class="edd-form-group">
|
|
<legend class="edd-form-group__label">
|
|
<?php echo esc_html( __( 'Time', 'easy-digital-downloads' ) . ' (' . edd_get_timezone_abbr() . ')' ); ?>
|
|
</legend>
|
|
|
|
<div class="edd-form-group__control">
|
|
<label for="edd-payment-time-hour" class="screen-reader-text">
|
|
<?php esc_html_e( 'Hour', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
<input type="number" class="edd-form-group__input small-text" min="0" max="24" step="1" name="edd-payment-time-hour" id="edd-payment-time-hour" value="<?php echo esc_attr( $order_date->format( 'H' ) ); ?>" />
|
|
:
|
|
|
|
<label for="edd-payment-time-min" class="screen-reader-text">
|
|
<?php esc_html_e( 'Minute', 'easy-digital-downloads' ); ?>
|
|
</label>
|
|
<input type="number" class="edd-form-group__input small-text" min="0" max="59" step="1" name="edd-payment-time-min" id="edd-payment-time-min" value="<?php echo esc_attr( $order_date->format( 'i' ) ); ?>" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
|
|
<?php do_action( 'edd_view_order_details_update_inner', $order->id ); ?>
|
|
|
|
</div><!-- /.edd-admin-box -->
|
|
</div><!-- /.inside -->
|
|
|
|
</div>
|
|
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Check if we are on the `Add New Order` page, or editing an existing one.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @return boolean True if on the `Add Order` page, false otherwise.
|
|
*/
|
|
function edd_is_add_order_page() {
|
|
return isset( $_GET['view'] ) && 'add-order' === sanitize_key( $_GET['view'] ); // WPCS: CSRF ok.
|
|
}
|
|
|
|
/**
|
|
* Returns markup for an Order status badge.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param string $order_status Order status slug.
|
|
* @return string
|
|
*/
|
|
function edd_get_order_status_badge( $order_status ) {
|
|
|
|
switch( $order_status ) {
|
|
case 'refunded' :
|
|
$icon = '<span class="edd-admin-order-status-badge__icon dashicons dashicons-undo"></span>';
|
|
break;
|
|
case 'failed' :
|
|
$icon = '<span class="edd-admin-order-status-badge__icon dashicons dashicons-no-alt"></span>';
|
|
break;
|
|
case 'complete' :
|
|
$icon = '<span class="edd-admin-order-status-badge__icon dashicons dashicons-yes"></span>';
|
|
break;
|
|
default:
|
|
$icon = '';
|
|
}
|
|
|
|
/**
|
|
* Filters the markup for the order status badge icon.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param string $icon Icon HTML markup.
|
|
*/
|
|
$icon = apply_filters( 'edd_get_order_status_badge_icon', $icon, $order_status );
|
|
|
|
ob_start();
|
|
?>
|
|
|
|
<span class="edd-admin-order-status-badge edd-admin-order-status-badge--<?php echo esc_attr( $order_status ); ?>">
|
|
|
|
<span class="edd-admin-order-status-badge__text">
|
|
<?php echo edd_get_payment_status_label( $order_status ); ?>
|
|
</span>
|
|
<span class="edd-admin-order-status-badge__icon">
|
|
<?php
|
|
echo wp_kses(
|
|
$icon,
|
|
array(
|
|
'span' => array(
|
|
'class' => true,
|
|
),
|
|
'svg' => array(
|
|
'class' => true,
|
|
'xmlns' => true,
|
|
'width' => true,
|
|
'height' => true,
|
|
'viewbox' => true,
|
|
'aria-hidden' => true,
|
|
'role' => true,
|
|
'focusable' => true,
|
|
),
|
|
'path' => array(
|
|
'fill' => true,
|
|
'fill-rule' => true,
|
|
'd' => true,
|
|
'transform' => true,
|
|
),
|
|
'polygon' => array(
|
|
'fill' => true,
|
|
'fill-rule' => true,
|
|
'points' => true,
|
|
'transform' => true,
|
|
'focusable' => true,
|
|
),
|
|
)
|
|
);
|
|
?>
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<?php
|
|
return ob_get_clean();
|
|
}
|