/**
     * Output the metabox
     */
    public static function output($post, $args)
    {
        global $theorder;
        if (!is_object($args['args']['invoice'])) {
            return;
        }
        $invoice = $args['args']['invoice'];
        $order = $theorder;
        wp_nonce_field('woocommerce_save_data', 'wc_gzdp_invoice_data');
        ?>
		<div class="panel-wrap woocommerce">
			<div id="invoice_data_<?php 
        echo $invoice->id;
        ?>
" class="panel invoice_data">
				<h2><?php 
        echo $invoice->get_title();
        ?>
</h2>
				<?php 
        if (!$invoice->is_new()) {
            ?>
					<p class="invoice_summary"><?php 
            echo $invoice->get_summary();
            ?>
</p>
				<?php 
        }
        ?>
				<div class="order_data_column_container invoice_data_column_container">
					<div class="order_data_column invoice_data_column">
						<h4><?php 
        _e('General Details', 'woocommerce-germanized-pro');
        ?>
</h4>
						<?php 
        if (!$invoice->is_type('cancellation')) {
            ?>
							<p class="form-field form-field-wide"><label for="invoice_status"><?php 
            _e('Invoice status:', 'woocommerce-germanized-pro');
            ?>
</label>
							<select id="invoice_status_<?php 
            echo $invoice->id;
            ?>
" name="invoice_status_<?php 
            echo $invoice->id;
            ?>
" class="chosen_select">
								<?php 
            $statuses = wc_gzdp_get_invoice_statuses();
            foreach ($statuses as $status => $status_name) {
                echo '<option value="' . esc_attr($status) . '" ' . selected($status, $invoice->get_status(), false) . '>' . esc_html($status_name) . '</option>';
            }
            ?>
							</select></p>
						<?php 
        }
        ?>
						<p class="form-field form-field-wide"><label for="invoice_date"><?php 
        _e('Invoice date:', 'woocommerce-germanized-pro');
        ?>
</label>
							<input type="text" class="date-picker-field" name="invoice_date_<?php 
        echo $invoice->id;
        ?>
" id="invoice_date_<?php 
        echo $invoice->id;
        ?>
" maxlength="10" value="<?php 
        echo $invoice->is_new() ? '' : $invoice->get_date('Y-m-d');
        ?>
" pattern="[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" />
						</p>
						<?php 
        if ($invoice->is_new() && !$invoice->is_cancellation()) {
            ?>
							<p><?php 
            _e('Leave blank to use the current orders\' data.', 'woocommerce-germanized-pro');
            ?>
</p>
						<?php 
        } elseif ($invoice->is_cancellation()) {
            ?>
							<p><?php 
            printf(__('Leave blank to use the data from %s.', 'woocommerce-germanized-pro'), $invoice->parent_title);
            ?>
</p>
						<?php 
        }
        ?>
						<?php 
        if (!$invoice->is_new()) {
            ?>
							<p class="form-field form-field-wide"><label for="invoice_delivery_status"><?php 
            _e('Invoice delivery status:', 'woocommerce-germanized-pro');
            ?>
</label>
								<span class="delivery_status <?php 
            echo $invoice->is_delivered() ? 'is_delivered' : 'not_delivered';
            ?>
"><?php 
            echo $invoice->is_delivered() ? sprintf(__('Delivered @ %s', 'woocommerce-germanized-pro'), $invoice->get_delivery_date()) : __('Not yet delivered', 'woocommerce-germanized-pro');
            ?>
</span>
							</p>
						<?php 
        }
        ?>
					</div>
					<div class="order_data_column invoice_data_column invoice-submit-area">
						<h4><?php 
        _e('Actions', 'woocommerce-germanized-pro');
        ?>
</h4>
						<input type="hidden" name="invoice[]" value="<?php 
        echo $invoice->id;
        ?>
" />
						<?php 
        if ($invoice->is_cancellation()) {
            ?>
							<input type="hidden" name="invoice_parent_<?php 
            echo $invoice->id;
            ?>
" value="<?php 
            echo $invoice->parent_id;
            ?>
" />
						<?php 
        }
        ?>
						<?php 
        if (!$invoice->is_locked()) {
            ?>
							<p class="form-field form-field-wide"><label for="invoice_generate"><?php 
            _e('This will (re)generate the PDF invoice.', 'woocommerce-germanized-pro');
            ?>
</label>
								<input type="hidden" name="invoice_generate_<?php 
            echo $invoice->id;
            ?>
" value="" class="invoice_generate invoice_generate_<?php 
            echo $invoice->id;
            ?>
" />
								<button type="submit" class="button <?php 
            echo $invoice->is_new() ? 'button-primary' : 'button-secondary';
            ?>
 button-invoice" data-invoice="<?php 
            echo $invoice->id;
            ?>
" data-action="generate"><?php 
            echo $invoice->get_submit_button_text();
            ?>
</button>
							</p>
						<?php 
        }
        ?>
						<?php 
        if ($invoice->has_attachment()) {
            ?>
							<p class="form-field form-field-wide"><label for="invoice_date"><?php 
            _e('Sends the invoice to the customer by email. Invoice will be locked after sending.', 'woocommerce-germanized-pro');
            ?>
</label>
								<input type="hidden" name="invoice_send_<?php 
            echo $invoice->id;
            ?>
" value="" class="invoice_send invoice_send_<?php 
            echo $invoice->id;
            ?>
" />
								<button type="submit" class="button <?php 
            echo !$invoice->is_delivered() ? 'button-primary' : 'button-secondary';
            ?>
 button-invoice" data-invoice="<?php 
            echo $invoice->id;
            ?>
" data-action="send"><?php 
            echo $invoice->is_delivered() ? __('Resend to Customer', 'woocommerce-germanized-pro') : __('Send to Customer', 'woocommerce-germanized-pro');
            ?>
</button>
							</p>
						<?php 
        }
        ?>
					</div>
				</div>
				<div class="clear"></div>
				<?php 
        if ($invoice->has_attachment()) {
            ?>
					<p class="button-wrap">
						<a class="invoice-delete delete" href="#"><?php 
            _e('Delete', 'woocommerce-germanized-pro');
            ?>
</a> 
						<a class="button button-primary" href="<?php 
            echo $invoice->get_pdf_url();
            ?>
" target="_blank"><?php 
            printf(__('Download %s', 'woocommerce-germanized-pro'), $invoice->get_title());
            ?>
</a>
					</p>
					<div class="invoice-delete-wrapper notice notice-error inline">
						<p>
							<?php 
            _e('Deleting an invoice can lead to data inconsistencies and taxation problems.', 'woocommerce-germanized-pro');
            ?>
							<input type="hidden" name="invoice_delete_<?php 
            echo $invoice->id;
            ?>
" value="" class="invoice_delete invoice_delete_<?php 
            echo $invoice->id;
            ?>
" />
							<button type="submit" class="button button-secondary button-invoice" data-invoice="<?php 
            echo $invoice->id;
            ?>
" data-action="delete"><?php 
            _e('Delete permanently', 'woocommerce-germanized-pro');
            ?>
</button>
							<a class="button button secondary hide-invoice-delete" href="#"><?php 
            _e('Stop deletion', 'woocommerce-germanized-pro');
            ?>
</a>
						</p>
					</div>
				<?php 
        }
        ?>
			</div>
		</div>
		<?php 
    }
 public static function invoice_data($atts)
 {
     extract(shortcode_atts(array('meta' => ''), $atts));
     if (!($invoice = self::get_invoice())) {
         return;
     }
     $return = '';
     if ($meta == 'status') {
         $statuses = wc_gzdp_get_invoice_statuses();
         $return = isset($statuses[$invoice->get_status()]) ? $statuses[$invoice->get_status()] : '';
     } else {
         if ($meta == 'date') {
             $return = $invoice->get_date(get_option('woocommerce_gzdp_invoice_date_format'));
         } else {
             $data = $invoice->{$meta};
             if (!$data) {
                 $return = false;
             } elseif (is_array($data)) {
                 $return = implode(', ', $data);
             } else {
                 $return = $data;
             }
         }
     }
     return apply_filters('woocommerce_gzdp_shortcode_invoice_data', $return, $atts);
 }
예제 #3
0
}
?>
		</select>
	</li>
	<li>
		<label><?php 
echo _x('Status:', 'invoices', 'woocommerce-germanized-pro');
?>
</label>
		<select name="invoice_status">
			<option value="0"><?php 
echo _x('All', 'invoices', 'woocommerce-germanized-pro');
?>
</option>
			<?php 
foreach (wc_gzdp_get_invoice_statuses() as $status => $label) {
    ?>
				<option value="<?php 
    echo $status;
    ?>
"><?php 
    echo $label;
    ?>
</option>
			<?php 
}
?>
		</select>
	</li>
	<li>
		<label><?php 
 private function set_query($args = array())
 {
     $this->query_args = array('posts_per_page' => -1, 'post_type' => 'invoice', 'orderby' => 'date', 'order' => 'ASC', 'post_status' => array());
     foreach (wc_gzdp_get_invoice_statuses() as $status => $val) {
         array_push($this->query_args['post_status'], $status);
     }
     if ($args['status']) {
         $this->query_args['post_status'] = $args['status'];
     }
     $this->query_args['meta_query'] = array();
     // By default exclude packing slips
     if (!isset($args['type'])) {
         array_push($this->query_args['meta_query'], array('key' => '_invoice_exclude', 'compare' => 'NOT EXISTS'));
     }
     if (isset($args['type'])) {
         array_push($this->query_args['meta_query'], array('key' => '_type', 'value' => $args['type'], 'compare' => '='));
     }
     if ($args['end_date'] || $args['start_date']) {
         $date_query = array('inclusive' => false);
         if (!empty($args['start_date'])) {
             $date_query['after'] = date('Y-m-d', strtotime('-1 day', strtotime($args['start_date'])));
         }
         if (!empty($args['end_date'])) {
             $date_query['before'] = date('Y-m-d', strtotime('+1 month', strtotime($args['end_date'])));
         }
         $this->query_args['date_query'] = array($date_query);
     }
     $this->query = new WP_Query($this->query_args);
 }