Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Aelia EU VAT Assistant for WooCommerce - Update VAT data for existing orders.
- * This code loops through existing orders and calls the EU VAT Assistant functions
- * that update the VAT data stored against each one.
- *
- * HOW TO USE THIS CODE
- * Add the code to the bottom of your theme's functions.php file (see https://www.skyverge.com/blog/add-custom-code-to-wordpress/).
- *
- * The script accepts the following URL arguments:
- * - update_order_vat_data=1. This argument triggers the processing of orders.
- * - start_date=YYMMDD. The script will take orders created on or after this date.
- * - end_date=YYMMDD. The script will take orders created BEFORE this date.
- * - debug=1. If specified, the script will print out debug information.
- *
- * GPL DISCLAIMER
- * Because this code program is free of charge, there is no warranty for it, to the extent permitted by applicable law.
- * Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is"
- * without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of
- * merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program
- * is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction.
- *
- * Need a consultation, or assistance to customise this code? Find us on Codeable: https://aelia.co/hire_us
- *
- * @author Aelia
- */
- add_action('admin_init', function() {
- if(!is_admin() || empty($_GET['update_order_vat_data']) || !current_user_can('manage_woocommerce')) {
- return;
- }
- global $wpdb;
- // Start date
- if(isset($_GET['start_date'])) {
- $start_date = $_GET['start_date'];
- }
- else {
- // Take the 1st of January of current year as the default start date
- $start_date = date('Y0101');
- }
- // End date
- if(isset($_GET['end_date'])) {
- $end_date = $_GET['end_date'];
- }
- else {
- // Take tomorrow as the default end date
- $default_end_date = new DateTime('tomorrow');
- $end_date = $default_end_date->format('Ymd');
- }
- $px = $wpdb->prefix;
- $SQL = "
- SELECT
- ORDERS.ID AS order_id
- FROM
- {$px}posts AS ORDERS
- WHERE
- (ORDERS.post_type IN ('shop_order')) AND
- (ORDERS.post_status IN ('wc-processing', 'wc-completed')) AND
- (ORDERS.post_date >= '$start_date') AND
- (ORDERS.post_date < '$end_date')
- ";
- // Debug
- if(isset($_GET['debug'])) {
- var_dump($SQL);
- }
- // Fetch the orders to process
- $dataset = $wpdb->get_results($SQL);
- if(isset($_GET['debug'])) {
- var_dump($SQL, $dataset);
- }
- foreach($dataset as $entry) {
- $order = new \Aelia\WC\EU_VAT_Assistant\Order($entry->order_id);
- // Generate and store details about order VAT
- $order->update_vat_data();
- // Save EU VAT compliance evidence
- //$order->store_vat_evidence();
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement