Plugin Directory

Changeset 2848352


Ignore:
Timestamp:
01/14/2023 10:02:39 AM (3 years ago)
Author:
primersoftware
Message:

Update

Location:
primer-mydata
Files:
2326 added
13 edited

Legend:

Unmodified
Added
Removed
  • primer-mydata/trunk/README.txt

    r2823401 r2848352  
    55Tested up to: 6.1.1
    66Requires PHP: 7.4
    7 Stable tag: 2.0.7
     7Stable tag: 2.0.8
    88License: GPLv2
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    127127= 2.0.6 - 2022-11-23 =
    128128* Minor Bug Fixes
    129 = 2.0.6 - 2022-11-24 =
    130 * Minor Bug Fixes
     129= 2.0.8 - 2022-11-23 =
     130* Minor Bug Fixes for php 8.0 version
     131* Now you can search with order Id or document Number in Receipts Page
     132* Now you can issue receipts/invcoices even if the products are deleted completely
     133* From now on new receipts/invoices can also be filter by document type (Receipt, Invoice, Credit Receipt, Credit Invoice)
  • primer-mydata/trunk/admin/class-primer-admin.php

    r2822848 r2848352  
    9797        wp_enqueue_style('primer-jquery-ui');
    9898        wp_enqueue_script('jquery-ui-datepicker');
    99         //wp_enqueue_script('cmb2-conditional', PRIMER_URL . '/includes/vendor/conditional/cmb2-conditionals.js');
    100 
    10199        //Bootstrap select
    102100        $screen = get_current_screen();
  • primer-mydata/trunk/admin/includes/primer-admin-options.php

    r2822848 r2848352  
    4040
    4141    public function __construct() {
    42 
    4342        add_action('admin_menu', array(&$this, 'menu'));
    4443        add_filter('show_admin_bar', array(&$this, 'hide_adminbar'));
    45 
    46 //      add_action('save_post', array(&$this, 'save_postdata'));
    47 
    48 //      add_action( 'admin_init', array( $this, 'init' ), 999 );
    49 
    50         //init is too early for settings api.
    5144        add_action('plugins_loaded', array(&$this, "plugins_loaded"));
    52 
    5345        add_action('wp_print_scripts', array(&$this, 'data_include_script'));
    5446        add_action('wp_ajax_create_primer_the_zip_file', array(&$this, 'create_primer_the_zip_file'));
     
    5648        add_action('wp_ajax_primer_resend_receipt_to_customer', array(&$this, 'primer_resend_receipt_to_customer'));
    5749        add_action('wp_ajax_primer_cancel_invoice', array(&$this, 'primer_cancel_invoice'));
    58 
    5950        add_action('wp_ajax_primer_smtp_settings', array(&$this, 'primer_smtp_settings'));
    60 
    6151        add_action('wp_ajax_primer_system_settings', array(&$this, 'primer_system_settings'));
    62 
    6352        add_action('wp_ajax_primer_insert_license', array(&$this, 'primer_insert_license'));
    64 
    6553        add_action('wp_ajax_first_time_act', array(&$this, 'first_time_act'));
    66 
    6754        add_action('wp_ajax_primer_get_series', array(&$this, 'primer_get_series'));
    68 
    6955        add_action('wp_ajax_company_activation_call', array(&$this, 'company_activation_call'));
    70 
    7156        add_action('wp_ajax_primer_license_remaining', array(&$this, 'primer_license_remaining'));
    72 
    7357        add_action('wp_ajax_primer_user_picture_upload', array(&$this, 'primer_user_picture_upload'));
    74 
    75         /*// add_action('wp_footer', array($this, 'primer_timologio_for_wc_aade_fill'));
    76         add_action('wp_ajax_primer_timologio_for_wc_aade_fill',array(&$this, 'primer_timologio_for_wc_aade_fill'));
    77         add_action('wp_ajax_nopriv_primer_timologio_for_wc_aade_fill',array(&$this, 'primer_timologio_for_wc_aade_fill'));
    78         add_action('wp_ajax_primer_check_for_valid_vat_aade', array(&$this,'primer_check_for_valid_vat_aade'));
    79         add_action('wp_ajax_primer_check_for_valid_vat_aade', array(&$this,'primer_check_for_valid_vat_aade'));*/
    80 
    8158        $this->menu_title = __( 'Primer MyData', 'primer' );
    8259    }
     
    11996
    12097            $this->options_pages[] = add_submenu_page('wp_ajax_list_order', __('License and General Settings', 'primer'), __('License and General Settings', 'primer'), 'manage_options', 'primer_licenses', array(&$this, "admin_settings_page_display"));
    121 
    12298            $this->options_pages[] = add_submenu_page(null, $this->menu_title, 'General Settings', 'manage_options', 'primer_generals', array( $this, 'admin_settings_page_display' ));
    123 
    12499            $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'MyData Settings', 'manage_options', 'primer_mydata', array( $this, 'admin_settings_page_display' ));
    125100            $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'Automation Settings', 'manage_options', 'primer_automation', array( $this, 'admin_settings_page_display' ));
    126101            $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'Email Settings', 'manage_options', 'primer_email', array( $this, 'admin_settings_page_display' ));
    127            // $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'Instructions', 'manage_options', 'primer_instructions', array( $this, 'admin_settings_page_display' ));
    128102        } else {
    129103            if (is_array($primer_license_data) && $primer_license_data['mistake_license'] == 'fail') {
    130104                add_menu_page(__('Primer Receipts', 'primer'), __('Primer Receipts', 'primer'), 'manage_options', 'wp_ajax_list_order', array(&$this, "admin_page_display"), 'dashicons-printer');
    131 
    132 //              add_submenu_page('wp_ajax_list_order', __('Export', 'primer'), __('Export', 'primer'), 'manage_options', 'primer_export', array(&$this, "admin_settings_page_display"));
    133 
    134105                $this->options_pages[] = add_submenu_page('wp_ajax_list_order', __('License and General Settings', 'primer'), __('License and General Settings', 'primer'), 'manage_options', 'primer_licenses', array(&$this, "admin_settings_page_display"));
    135 
    136106                $this->options_pages[] = add_submenu_page(null, $this->menu_title, 'General Settings', 'manage_options', 'primer_generals', array( $this, 'admin_settings_page_display' ));
    137 
    138107                $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'MyData Settings', 'manage_options', 'primer_mydata', array( $this, 'admin_settings_page_display' ));
    139108                $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'Automation Settings', 'manage_options', 'primer_automation', array( $this, 'admin_settings_page_display' ));
    140109                $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'Email Settings', 'manage_options', 'primer_email', array( $this, 'admin_settings_page_display' ));
    141                // $this->options_pages[] = add_submenu_page('wp_ajax_list_order', __('Instructions', 'primer'), __('Instructions', 'primer'), 'manage_options', 'primer_instructions', array(&$this, "admin_settings_page_display"));
    142110            } else {
    143111                add_menu_page(__('Primer Receipts', 'primer'), __('Primer Receipts', 'primer'), 'manage_options', 'wp_ajax_list_order', array(&$this, "admin_page_display"), 'dashicons-printer');
     
    146114                    add_submenu_page('wp_ajax_list_order', __('Receipts', 'primer'), __('Receipts', 'primer'), 'manage_options', 'primer_receipts', array(&$this, "admin_page_receipt_display"));
    147115                }
    148 
    149116                add_submenu_page(null, __('Receipts Logs', 'primer'), __('Receipts Logs', 'primer'), 'manage_options', 'primer_receipts_logs', array(&$this, "admin_page_receipt_log_display"));
    150117                add_submenu_page(null, __('Automation Logs', 'primer'), __('Automation Logs', 'primer'), 'manage_options', 'primer_receipts_logs_automation', array(&$this, "admin_page_receipt_log_automation_display"));
    151118                add_submenu_page('wp_ajax_list_order', __('Settings', 'primer'), __('Settings', 'primer'), 'manage_options', 'primer_settings', array(&$this, "admin_settings_page_display"));
    152 
    153 //              add_submenu_page('wp_ajax_list_order', __('Export', 'primer'), __('Export', 'primer'), 'manage_options', 'primer_export', array(&$this, "admin_settings_page_display"));
    154 
    155119                $this->options_pages[] = add_submenu_page('wp_ajax_list_order', __('License and General Settings', 'primer'), __('License and General Settings', 'primer'), 'manage_options', 'primer_licenses', array(&$this, "admin_settings_page_display"));
    156 
    157120                $this->options_pages[] = add_submenu_page(null, $this->menu_title, 'General Settings', 'manage_options', 'primer_generals', array( $this, 'admin_settings_page_display' ));
    158 
    159121                if (!empty($primer_license_data['wpModules']) && in_array(7, $primer_license_data['wpModules'])) {
    160122                    $this->options_pages[] = add_submenu_page( null,  $this->menu_title, 'MyData Settings', 'manage_options', 'primer_mydata', array( $this, 'admin_settings_page_display' ));
     
    27552717                    foreach ( $order->get_items() as $item_id => $item_data ) {
    27562718                        $product_id = $item_data->get_product_id();
    2757                         $product_instance = wc_get_product($product_id);
    2758                         $product_name = $product_instance->get_name();
     2719                        //$product_instance = wc_get_product($product_id);
     2720                        $product_name = $item_data->get_name();
    27592721                    }
    27602722                }
     
    28122774                        $sum += $quantity;
    28132775
    2814                         $product_id = $item_data->get_product_id();
    2815                         $product_instance = wc_get_product($product_id);
    2816                         $product_name = $product_instance->get_name();
    2817 
    2818                         $product_tax_class = $product_instance->get_tax_class();
     2776                        //$product_id = $item_data->get_product_id();
     2777                        //$product_instance = wc_get_product($product_id);
     2778                        //$product_name = $product_instance->get_name();
     2779
     2780                        $product_tax_class = $item_data->get_tax_class();
    28192781
    28202782                        $taxes = WC_Tax::get_rates_for_tax_class( $product_tax_class );
     
    28362798                }
    28372799
    2838                 if (!empty($product_id)) {
     2800                if (!empty($item_data)) {
    28392801                    $this->receipt_product_vat_amount[$inside_tax_rate] = $inside_tax_rate;
    28402802                }
     
    28782840                    foreach ( $order->get_items() as $item_id => $item_data ) {
    28792841                        $product_id = $item_data->get_product_id();
    2880                         $product_instance = wc_get_product($product_id);
    2881                         $product_name = $product_instance->get_name();
    2882                         $regular_price = $product_instance->get_regular_price();
     2842                    //  $product_instance = wc_get_product($product_id);
     2843                        $product_name = $item_data->get_name();
     2844                        $regular_price = $item_data->get_regular_price();
    28832845                    }
    28842846                }
     
    29262888                    foreach ( $order->get_items() as $item_id => $item_data ) {
    29272889                        $product_id = $item_data->get_product_id();
    2928                         $product_instance = wc_get_product($product_id);
    2929                         $product_name = $product_instance->get_name();
    2930                         $regular_price = $product_instance->get_regular_price();
     2890                        //$product_instance = wc_get_product($product_id);
     2891                        $product_name = $item_data->get_name();
     2892                        $regular_price = $item_data->get_regular_price();
    29312893                        $subtotal_order_payment = $item_data->get_subtotal();
    29322894                    }
     
    37233685                            $quantity = $item_data->get_quantity();
    37243686                            $sum += $quantity;
    3725                             $product_id = $item_data->get_product_id();
     3687                          /*  $product_id = $item_data->get_product_id();
    37263688                            $product_instance = wc_get_product($product_id);
    37273689                            if($product_instance == null){
     
    37313693                                update_post_meta($receipt_log_id, 'receipt_log_error', $receipt_log_value);
    37323694                                break 2;
    3733                             }
     3695                            } */
    37343696                            if (!empty($get_coupon)) {
    37353697                                $subtotal_order_payment = $item_data->get_total();
     
    37383700                            }
    37393701
    3740                             $product_tax_class = $product_instance->get_tax_class();
     3702                            $product_tax_class = $item_data->get_tax_class();
    37413703                            $taxes = WC_Tax::get_rates_for_tax_class( $product_tax_class );
    37423704                            $tax_arr = json_decode(json_encode($taxes), true);
     
    41544116                        $invoice_data['invoice'][0]['invoiceSummary']['totalOtherTaxesAmount'] = 0;
    41554117                        $invoice_data['invoice'][0]['invoiceSummary']['totalGrossValue'] = "$total";
    4156                         if($order_country == 'GR' || $order_invoice_type == 'receipt') {
     4118                        if(($order_country == 'GR' || $order_invoice_type == 'receipt') && $outside_vat != 'yes') {
    41574119                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['classificationCategory'] = $classificationCategory;
    41584120                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['classificationType'] = $classificationType;
     
    41634125                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['classificationType'] = "E3_562";
    41644126                                if($fee_total >0){
    4165                                     $shipping_total = $shipping_total+$fee_total;
    4166                                     $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
     4127                                $shipping_total = $shipping_total+$fee_total;
     4128                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
    41674129                                }else{
    4168                                     $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
     4130                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
    41694131                                }
    41704132                            }else if($fee_total >0){
     
    41764138                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$fee_net_value";
    41774139                            }else{
    4178                                 $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['amount'] = "$subtotal";
     4140                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['amount'] = "$subtotal";
    41794141                            }
    41804142                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['id'] = "1";
    41814143                        } else {
    4182                             $shipping_total_unformatted = $order->get_shipping_total();
    41834144                            $amount_class = $total - $total_tax - $fee_net_value - $shipping_total;
    41844145                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['classificationCategory'] = $classificationCategory;
     
    41874148                            $total_counter = 1;
    41884149                            if($total_tax != 0){
    4189                                 $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['classificationCategory'] = $classificationCategory_en;
    4190                                 $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['amount'] = "$total_tax";
    4191                                 $total_counter = 2;
     4150                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['classificationCategory'] = $classificationCategory_en;
     4151                            $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['amount'] = "$total_tax";
     4152                            $total_counter = 2;
    41924153                            }
    41934154                            if($shipping_total > 0){
     
    41954156                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['classificationType'] = "E3_562";
    41964157                                if($fee_total = 0){
    4197                                     $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['amount'] = "$shipping_total";
     4158                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][$total_counter]['amount'] = "$shipping_total";
    41984159                                }else{
    41994160                                    $ship_and_fee = $fee_net_value + $shipping_total;
     
    43744335                                        update_post_meta($post_id, 'credit_success_mydata_date', $invoice_date);
    43754336                                        update_post_meta($post_id, 'credit_success_mydata_time', $invoice_time);
    4376 
     4337                                        update_post_meta($post_id, 'receipt_type', $invoice_term);
    43774338                                        update_post_meta($post_id, 'send_to_api_type', $api_type);
    43784339                                        if ($api_type == 'test') {
     
    47524713                                        update_post_meta($post_id, 'credit_success_mydata_date', $invoice_date);
    47534714                                        update_post_meta($post_id, 'credit_success_mydata_time', $invoice_time);
    4754 
     4715                                        update_post_meta($post_id, 'receipt_type', $invoice_term);
    47554716                                        update_post_meta($post_id, 'send_to_api_type', $api_type);
    47564717                                        if ($api_type == 'test') {
     
    62936254    }
    62946255
    6295     public function get_alpha_char() {
     6256    public function get_alpha_char(): array
     6257    {
    62966258        $alpha_chars = array();
    62976259        $alpha_chars[''] = __('Select', 'primer');
  • primer-mydata/trunk/admin/includes/primer-admin-receipt-table.php

    r2812297 r2848352  
    4545        return array();
    4646    }
     47
     48    public function display() {
     49
     50        //  echo '<form id="wc-orders-filter" method="get" action="' . esc_url( get_admin_url( null, 'admin.php' ) ) . '">';
     51        $this->search_box( esc_html__( 'Search  by order id or number of invoice', 'primer' ), 'filter_action' );
     52        parent::display();
     53        //  echo '</form> </div>';
     54    }
    4755
    4856    function column_default( $item, $column_name ) {
     
    280288                            </select>
    281289                        </div>
     290                        <div class="filter_block">
     291                            <label for="primer_receipt_type" style="float: left;"><?php _e('Invoice Type: ', 'primer'); ?></label>
     292                            <select name="primer_receipt_type" title="<?php _e('Select invoice type', 'primer'); ?>" id="primer_receipt_type">
     293                                <?php
     294                                $get_type = isset($_GET['primer_receipt_type']) ? sanitize_text_field($_GET['primer_receipt_type']) : '';
     295                                $type_of_receipts = array(
     296                                    '' => 'All',
     297                                    'receipt' => 'Receipt',
     298                                    'invoice' => 'Invoice',
     299                                    'credit-receipt' => 'Credit Receipt',
     300                                    'credit-invoice' => 'Credit Invoice'
     301                                );
     302
     303                                foreach ( $type_of_receipts as $status_k => $status_value ) { ?>
     304                                    <option value="<?php echo esc_attr($status_k); ?>" <?php selected($status_k, $get_type); ?>><?php echo esc_attr($status_value); ?></option>
     305                                <?php }
     306                                ?>
     307                            </select>
     308                        </div>
    282309
    283310                        <div class="apply_btn"><input type="submit" class="button" name="filter_action" value="<?php _e('Apply filter', 'primer'); ?>" /></div>
     
    653680
    654681    function prepare_items() {
    655 
    656682        $per_page = 20;
    657 
     683        $current_page = $this->get_pagenum();
    658684        $get_total_receipts = new PrimerReceiptList();
    659685
    660         if (isset($_GET['primer_receipt_status']) || isset($_GET['primer_receipt_client']) || isset($_GET['receipt_date_from']) || isset($_GET['receipt_date_to'])) {
    661             $get_receipts_list = $get_total_receipts->get_with_params($_GET['receipt_date_from'], $_GET['receipt_date_to'], $_GET['primer_receipt_client'], $_GET['primer_receipt_status']);
     686        if (isset($_GET['primer_receipt_status']) || isset($_GET['primer_receipt_client']) || isset($_GET['primer_receipt_type']) || isset($_GET['receipt_date_from']) || isset($_GET['receipt_date_to']) || (isset($_GET['s']) && !empty($_GET['s']) )) {
     687            $get_receipts_list = $get_total_receipts->get_with_params($current_page, $_GET['receipt_date_from'], $_GET['receipt_date_to'], $_GET['primer_receipt_client'], $_GET['primer_receipt_status'], $_GET['primer_receipt_type']);
    662688        } else {
    663             $get_receipts_list = $get_total_receipts->get();
     689            $get_receipts_list = $get_total_receipts->get($current_page);
    664690        }
    665691
     
    677703         * Get current page calling get_pagenum method
    678704         */
    679         $current_page = $this->get_pagenum();
    680         $total_items = count($data);
    681 
    682         $data = array_slice($data,(($current_page-1)*$per_page),$per_page);
    683 
     705        $total_items = array_sum( (array) wp_count_posts( 'primer_receipt' ) );
    684706        $this->items = $data;
    685 
    686 
    687707        /**
    688708         * Call to _set_pagination_args method for informations about
  • primer-mydata/trunk/admin/includes/primer-admin-table.php

    r2822848 r2848352  
    405405            $get_orders_list = $get_total_orders->get($current_page);
    406406        }
    407 
    408407        $columns  = $this->get_columns();
    409408        $hidden   = $this->hidden_columns;
    410409        $sortable = $this->get_sortable_columns();
    411410        $this->_column_headers = array( $columns, $hidden, $sortable );
    412 
    413 
    414411        $this->items = $get_orders_list;
    415 
    416412        $data = $this->items;
    417 
    418413        /**
    419414         * Get current page calling get_pagenum method
    420415         */
    421416        $current_page = $this->get_pagenum();
    422         //$total_items = count($get_orders_list);
    423417       $total_items = array_sum( (array) wp_count_posts( 'shop_order' ) );
    424         //$data = array_slice($data,(($current_page-1)*$per_page),$per_page);
    425 
    426418        $this->items = $data;
    427 
    428 
    429419        /**
    430420         * Call to _set_pagination_args method for informations about
     
    439429        );
    440430    }
    441 
    442     /*function display() {
    443         wp_nonce_field( 'ajax-order-list-nonce', '_ajax_order_list_nonce' );
    444 
    445         parent::display();
    446     }*/
    447431
    448432    function no_items() {
     
    589573            break;
    590574        case 'production_api':
    591             $api_urls[] = 'https://wp-mydataapi.primer.gr/v2/invoices/send';
    592             $url = 'https://wp-mydataapi.primer.gr/v2/invoices/send';
     575            $api_urls[] = 'https://https://wp-mydataapi.primer.gr/v2/invoices/send';
     576            $url = 'https://https://wp-mydataapi.primer.gr/v2/invoices/send';
    593577            $api_type = 'production';
    594578            break;
     
    622606            if ($ret_code !== 502) {
    623607                $url = $item_url;
    624                 $url_slug = 'https://wp-mydataapi.primer.gr';
     608                $url_slug = 'https://https://wp-mydataapi.primer.gr';
    625609            } else {
    626610                $url = 'https://backup-mydataapi.ddns.net/v2/invoices/send';
     
    10271011                            $quantity = $item_data->get_quantity();
    10281012                            $sum += $quantity;
    1029                             $product_id = $item_data->get_product_id();
     1013                           /* $product_id = $item_data->get_product_id();
    10301014                            $product_instance = wc_get_product($product_id);
    10311015                              if($product_instance == null){
     
    10351019                            update_post_meta($receipt_log_id, 'receipt_log_error', $receipt_log_value);
    10361020                            break 2;
    1037                             }
     1021                            } */
    10381022
    10391023                            if (!empty($get_coupon)) {
     
    10451029                                continue;
    10461030                            }
    1047 
    1048                             $product_tax_class = $product_instance->get_tax_class();
     1031                            $product_tax_class = $item_data->get_tax_class();
    10491032                            $taxes = WC_Tax::get_rates_for_tax_class( $product_tax_class );
    10501033                            $tax_arr = json_decode(json_encode($taxes), true);
     
    14661449                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['classificationType'] = "E3_562";
    14671450                                if($fee_total >0){
    1468                                     $shipping_total = $shipping_total+$fee_total;
    1469                                     $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
     1451                                $shipping_total = $shipping_total+$fee_total;
     1452                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
    14701453                                }else{
    14711454                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['amount'] = "$shipping_total";
     
    14731456                            }else if($fee_total >0){
    14741457                                $total_for_product = $subtotal - $fee_total;
    1475                             $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['amount'] = "$total_for_product";
     1458                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][0]['amount'] = "$total_for_product";
    14761459                                $invoice_data['invoice'][0]['invoiceSummary']['totalGrossValue'] = "$order_total_price";
    14771460                                $invoice_data['invoice'][0]['invoiceSummary']['incomeClassification'][1]['classificationCategory'] = "category1_5";
     
    16761659                                update_post_meta($post_id, 'success_mydata_date', $invoice_date);
    16771660                                update_post_meta($post_id, 'success_mydata_time', $invoice_time);
    1678 
     1661                                update_post_meta($post_id, 'receipt_type', $invoice_term);
    16791662                                update_post_meta($post_id, 'send_to_api_type', $api_type);
    16801663                                if ($api_type == 'test') {
     
    20792062                                update_post_meta($post_id, 'success_mydata_date', $invoice_date);
    20802063                                update_post_meta($post_id, 'success_mydata_time', $invoice_time);
    2081 
     2064                                update_post_meta($post_id, 'receipt_type', $invoice_term);
    20822065                                update_post_meta($post_id, 'send_to_api_type', $api_type);
    20832066                                if ($api_type == 'test') {
  • primer-mydata/trunk/includes/class-primer-activator.php

    r2812297 r2848352  
    4343        );
    4444
    45         $wp_version = $wp_version;
    46         $php_version = phpversion();
     45        $php_version = phpversion();
    4746        $extensions = get_loaded_extensions();
    4847        $curl = in_array('curl', $extensions);
     
    6059
    6160        set_transient( 'primer_activation_warning', $error, 5 );
     61        $orders       = wc_get_orders(array(
     62            'date_created' => '>' . '01-01-2022',
     63            'limit' => 1000
     64        ));
     65        foreach ( $orders as $order ) {
     66            if (is_a($order, 'WC_Order_Refund')) {
     67                $order = wc_get_order($order->get_parent_id());
     68            }
     69            $order_id = $order->get_id();
     70            $receipt_order_status = get_post_meta($order_id, 'receipt_status', true);
     71            if (empty($receipt_order_status)) {
     72                update_post_meta($order_id, 'receipt_status', 'not_issued');
     73            }
     74        }
    6275
    6376        /**
     
    7689
    7790        // Done
    78         do_action( 'primer_activated' );
     91    //  do_action( 'primer_activated' );
    7992    }
    8093
  • primer-mydata/trunk/includes/class-primer-cron.php

    r2822848 r2848352  
    249249                            'return' => 'ids',
    250250                            'limit' => $limit_automation_orders,
    251                             'order' => 'DESC'
     251                            'order' => 'DESC',
     252                            'meta_key'     => 'receipt_status', // The postmeta key field
     253                            'meta_value' => 'not_issued', // The comparison argument
    252254                        );
    253255
     
    262264                        $mydata_options['already_running_orders'] = count($orders) * 5;
    263265                        update_option('primer_mydata', $mydata_options);
     266                        array_map( 'sanitize_text_field', $orders );
    264267                        foreach ($orders as $order_id) {
    265268                            $invoice_data = array(
     
    632635                                            $quantity = $item_data->get_quantity();
    633636                                            $sum += $quantity;
    634                                             $product_id = $item_data->get_product_id();
     637                                           /* $product_id = $item_data->get_product_id();
    635638                                            $product_instance = wc_get_product($product_id);
    636639                                            if($product_instance == null){
     
    639642                                                update_post_meta($receipt_log_id, 'receipt_log_error', $receipt_log_value);
    640643                                                break 2;
    641                                             }
     644                                            } */
    642645                                            if (!empty($get_coupon)) {
    643646                                                $subtotal_order_payment = $item_data->get_total();
     
    649652                                            }
    650653
    651                                             $product_tax_class = $product_instance->get_tax_class();
     654                                            $product_tax_class = $item_data->get_tax_class();
    652655                                            $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
    653656                                            $tax_arr = json_decode(json_encode($taxes), true);
     
    12891292                                                        update_post_meta($post_id, 'success_mydata_date', $invoice_date);
    12901293                                                        update_post_meta($post_id, 'success_mydata_time', $invoice_time);
    1291 
     1294                                                        update_post_meta($post_id, 'receipt_type', $invoice_term);
    12921295                                                        update_post_meta($post_id, 'send_to_api_type', $api_type);
    12931296                                                        if ($api_type == 'test') {
     
    14641467                                                    $args = array(
    14651468                                                        'method'        => 'POST',
     1469                                                        'timeout'       => 30,
    14661470                                                        'headers'       => array(
    14671471                                                            'Authorization' => 'Basic ' . base64_encode( $username.':'.$password ),
     
    15931597                                                            $response_data = '<div class="notice notice-success"><p>' . __('Orders converted', 'primer') . '</p></div>';
    15941598                                                        } else {
    1595                                                             $mydata_options['last_request'] = $order_ids;
     1599                                                            $mydata_options['last_request'] = $orders;
    15961600                                                            update_option('primer_mydata', $mydata_options);
    15971601                                                            update_post_meta($id_of_order, 'receipt_status', 'not_issued');
     
    16031607                                                        $response_data .= '<div class="notice notice-error"><p>' . __('Conversion failed! Because AADE return null uid,auth code,mark.Please contact technical support.', 'primer') . '</p></div>';
    16041608                                                        $receipt_log_value_array[] = __('HTML Response is empty', 'primer');
    1605                                                         $mydata_options['last_request'] = $order_ids;
     1609                                                        $mydata_options['last_request'] = $orders;
    16061610                                                        update_post_meta($id_of_order, 'receipt_status', 'not_issued');
    16071611                                                        update_post_meta($id_of_order, 'transmission_failure_check', 4);
     
    16951699                                                        update_post_meta($post_id, 'success_mydata_time', $invoice_time);
    16961700                                                        update_post_meta($post_id, 'send_to_api_type', $api_type);
     1701                                                        update_post_meta($post_id, 'receipt_type', $invoice_term);
    16971702                                                        if ($api_type == 'test') {
    16981703                                                            $url_slug = 'https://test-mydataapi.ddns.net';
     
    19811986                                                            $response_data = '<div class="notice notice-success"><p>' . __("Orders converted", "primer") . '</p></div>';
    19821987                                                        } else {
    1983                                                             $mydata_options['last_request'] = $order_ids;
     1988                                                            $mydata_options['last_request'] = $orders;
    19841989                                                            update_post_meta($id_of_order, 'receipt_status', 'not_issued');
    19851990                                                            update_post_meta($id_of_order, 'transmission_failure_check', 4);
     
    19941999                                                        }
    19952000                                                    } else {
    1996                                                         $mydata_options['last_request'] = $order_ids;
     2001                                                        $mydata_options['last_request'] = $orders;
    19972002                                                        update_post_meta($id_of_order, 'receipt_status', 'not_issued');
    19982003                                                        update_post_meta($id_of_order, 'transmission_failure_check', 4);
     
    20052010                                                    }
    20062011                                                } else {
    2007                                                     $mydata_options['last_request'] = $order_ids;
     2012                                                    $mydata_options['last_request'] = $orders;
    20082013                                                    update_post_meta($id_of_order, 'receipt_status', 'not_issued');
    20092014                                                    update_post_meta($id_of_order, 'transmission_failure_check', 4);
     
    20162021                                                }
    20172022                                                } else {
    2018                                                     $mydata_options['last_request'] = $order_ids;
     2023                                                    $mydata_options['last_request'] = $orders;
    20192024                                                    if (!empty($url_slug)) {
    20202025                                                        $mydata_options['last_request_url'] = $url_slug;
     
    22512256                    }
    22522257                    foreach ($order->get_items() as $item_id => $item_data) {
    2253                         $product_id = $item_data->get_product_id();
    2254                         $product_instance = wc_get_product($product_id);
    2255 
    2256                         $product_tax_class = $product_instance->get_tax_class();
     2258                      //  $product_id = $item_data->get_product_id();
     2259                       // $product_instance = wc_get_product($product_id);
     2260
     2261                        $product_tax_class = $item_data->get_tax_class();
    22572262
    22582263                        $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
     
    25112516                                $sum += $quantity;
    25122517                                $count_products = count($order->get_items());
    2513                                 $product_id = $item_data->get_product_id();
     2518                               /* $product_id = $item_data->get_product_id();
    25142519                                $product_instance = wc_get_product($product_id);
    25152520                                if($product_instance == null){
     
    25192524                                    update_post_meta($receipt_log_id, 'receipt_log_error', $receipt_log_value);
    25202525                                    break 2;
    2521                                 }
     2526                                } */
    25222527                                if (!empty($get_coupon)) {
    25232528                                    $subtotal_order_payment = $item_data->get_total();
     
    25282533                                    continue;
    25292534                                }
    2530                                 $product_tax_class = $product_instance->get_tax_class();
     2535                                $product_tax_class = $item_data->get_tax_class();
    25312536                                $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
    25322537                                $tax_arr = json_decode(json_encode($taxes), true);
     
    31153120                                        update_post_meta($post_id, 'success_mydata_date', $invoice_date);
    31163121                                        update_post_meta($post_id, 'success_mydata_time', $invoice_time);
     3122                                        update_post_meta($post_id, 'receipt_type', $invoice_term);
    31173123                                        update_post_meta($post_id, 'send_to_api_type', $api_type);
    31183124                                        update_post_meta($post_id, 'order_id_to_receipt', $id_of_order);
     
    38093815                                $quantity = $item_data->get_quantity();
    38103816                                $sum += $quantity;
    3811                                 $product_id = $item_data->get_product_id();
     3817                               /* $product_id = $item_data->get_product_id();
    38123818                                $product_instance = wc_get_product($product_id);
    38133819                                if($product_instance == null){
     
    38173823                                    update_post_meta($receipt_log_id, 'receipt_log_error', $receipt_log_value);
    38183824                                    break 2;
    3819                                 }
     3825                                } */
    38203826                                if (!empty($get_coupon)) {
    38213827                                    $subtotal_order_payment = $item_data->get_total();
     
    38283834                                }
    38293835
    3830                                 $product_tax_class = $product_instance->get_tax_class();
     3836                                $product_tax_class = $item_data->get_tax_class();
    38313837                                $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
    38323838                                $tax_arr = json_decode(json_encode($taxes), true);
     
    50185024
    50195025                    foreach ($total_order->get_items() as $item_id => $item_data) {
    5020                         $product_id = $item_data->get_product_id();
    5021                         $product_instance = wc_get_product($product_id);
    5022                         $product_name_value[] = $product_instance->get_name();
     5026                       // $product_id = $item_data->get_product_id();
     5027                       // $product_instance = wc_get_product($product_id);
     5028                        $product_name_value[] = $item_data->get_name();
    50235029                        $product_quantity_value[] = $item_data->get_quantity();
    5024                         $product_tax_class = $product_instance->get_tax_class();
     5030                        $product_tax_class = $item_data->get_tax_class();
    50255031                        $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
    50265032                        $tax_arr = json_decode(json_encode($taxes), true);
     
    52935299                        $tax_rate = str_replace('%', '', $tax_percent);
    52945300                        foreach ($order->get_items() as $item_id => $item_tax) {
    5295                             $product_id = $item_tax->get_product_id();
    5296                             $product_instance = wc_get_product($product_id);
    5297                             $product_tax_class = $product_instance->get_tax_class();
     5301                           // $product_id = $item_tax->get_product_id();
     5302                           // $product_instance = wc_get_product($product_id);
     5303                            $product_tax_class = $item_tax->get_tax_class();
    52985304                            $taxes = WC_Tax::get_rates_for_tax_class($product_tax_class);
    52995305
  • primer-mydata/trunk/includes/class-primer.php

    r2823401 r2848352  
    114114         */
    115115        require_once PRIMER_PATH . 'includes/class-primer-loader.php';
    116 
    117116        /**
    118117         * The class responsible for defining internationalization functionality
     
    120119         */
    121120        require_once PRIMER_PATH . 'includes/class-primer-i18n.php';
    122         require_once PRIMER_PATH . 'admin/includes/primer-admin-notices.php';
    123 
    124121        /**
    125122         * The class responsible for defining all actions that occur in the admin area.
     
    142139         */
    143140        require_once PRIMER_PATH . 'public/class-primer-public.php';
    144 
    145141        $this->loader = new Primer_Loader();
    146 
    147142        $this->QRcode = new QRcode();
    148 
    149143    }
    150144
     
    159153     */
    160154    private function set_locale() {
    161 
    162155        $plugin_i18n = new Primer_i18n();
    163156        $plugin_i18n->set_domain( $this->get_plugin_name() );
    164157        $plugin_i18n->load_plugin_textdomain();
    165 
    166158    }
    167159
     
    199191        $this->loader->add_filter('woocommerce_order_formatted_billing_address', $plugin_admin, 'primer_add_woocommerce_order_fields', 10, 2);
    200192        $this->loader->add_filter('woocommerce_formatted_address_replacements', $plugin_admin, 'primer_add_woocommerce_formatted_address_replacements', 10, 2);
    201 //      $this->loader->add_filter('woocommerce_billing_fields', $plugin_admin, 'primer_add_woocommerce_billing_fields');
    202193        $this->loader->add_filter('woocommerce_checkout_fields', $plugin_admin, 'primer_remove_woocommerce_shipping_fields');
    203194        $this->loader->add_filter( 'default_checkout_shipping_country', $plugin_admin, 'primer_set_shipping_country' );
     
    276267        $primer_license_data = get_option('primer_licenses');
    277268        $automation_options = get_option('primer_automation');
    278         //if (!empty($automation_options) && !empty($automation_options['activation_automation'])) {
    279269            if(is_array($automation_options) && array_key_exists('activation_automation',$automation_options)) {
    280270                $check_automation_options = $automation_options['activation_automation'];
     
    285275                wp_unschedule_event( $next_timestamp, 'primer_cron_process');
    286276            }
    287         //}
    288 //      $this->loader->add_action('cmb2_save_page_fields_primer_automation', $plugin_admin, 'convert_order_to_invoice', 10);
    289277        $export_options = get_option('primer_export');
    290278        if (!empty($export_options) && !empty($export_options['export_enable_schedule'])) {
  • primer-mydata/trunk/includes/template-tags/primer-tags-display-modules.php

    r2821718 r2848352  
    265265        $issuer_product .= '<tr class="products">';
    266266        $product_id = $item->get_product_id();
    267         $product_instance = wc_get_product($product_id);
     267        //$product_instance = wc_get_product($product_id);
    268268
    269269        $issuer_product .= '<td><span class="item_code">'.$product_id.'</span></td>';
    270270
    271         $product_name = $product_instance->get_name();
     271        $product_name = $item->get_name();
    272272        $order_country = $order->get_billing_country();
    273         $product_sale = $product_instance->get_total_sales();
    274         $sale_price = $product_instance->get_sale_price();
    275         if (empty($sale_price)) {
    276             $sale_price = '0';
    277         }
     273        //$product_sale = $item->get_total_sales();
     274        //$sale_price = $item->get_sale_price();
     275        //if (empty($sale_price)) {
     276        //  $sale_price = '0';
     277        //}
    278278            $hideprefix = '_';
    279279            foreach ( $item->get_all_formatted_meta_data( $hideprefix ) as $meta_key => $formatted_meta ) {
     
    295295            $regular_price = number_format((float)$regular_price, 2);
    296296        $issuer_product .= '<td><span class="item_unit_price">'.$regular_price.'</span></td>';
    297         $product_tax_class = $product_instance->get_tax_class();
     297        $product_tax_class = $item->get_tax_class();
    298298
    299299        $taxes = WC_Tax::get_rates_for_tax_class( $product_tax_class );
     
    510510        foreach ( $order->get_items() as $item_id => $item_tax ) {
    511511            $product_id = $item_tax->get_product_id();
    512             $product_instance = wc_get_product($product_id);
    513             $product_tax_class = $product_instance->get_tax_class();
     512          //  $product_instance = wc_get_product($product_id);
     513            $product_tax_class = $item_tax->get_tax_class();
    514514            $taxes = WC_Tax::get_rates_for_tax_class( $product_tax_class );
    515515
     
    869869    $customer_country = $order_customer_country;
    870870
    871     foreach ( $order->get_items() as $item_id => $item ) {
     871    /*foreach ( $order->get_items() as $item_id => $item ) {
    872872        $product_id = $item->get_product_id();
    873873        $product_instance = wc_get_product($product_id);
    874     }
     874    } */
    875875
    876876    $discount_tax = $order->get_discount_tax();
     
    900900    $currency_symbol = get_woocommerce_currency_symbol( $currency );
    901901
    902     $price_excl_tax = wc_get_price_excluding_tax( $product_instance ); // price without VAT
    903     $price_incl_tax = $price_excl_tax + $total_tax;  // price with VAT
     902    //$price_excl_tax = wc_get_price_excluding_tax( $product_instance ); // price without VAT
     903    //$price_incl_tax = $price_excl_tax + $total_tax;  // price with VAT
    904904
    905905    $issuer_total .= '<div class="totals">';
  • primer-mydata/trunk/primer.php

    r2823401 r2848352  
    1818 * Plugin URI:        primer.gr/plugin/
    1919 * Description:      Issue receipts and invoices with woocommerce.
    20  * Version:           2.0.7
     20 * Version:           2.0.8
    2121 * Author:            Primer Software
    2222 * Author URI:        primer.gr
     
    3030    exit;
    3131}
    32 //
    33 class PrimerMyData{
    34 
    35     public $plugin_slug;
    36     public $version;
    37     public $cache_key;
    38     public $cache_allowed;
    39 
    40     public function __construct() {
    41 
    42         $this->plugin_slug = plugin_basename( __DIR__ );
    43         $this->version = '1.4.4';
    44         $this->cache_key = 'primerMyData_custom_upd';
    45         $this->cache_allowed = false;
    46        
    47 
    48     }
    49 
    50     public function request(){
    51 
    52         $remote = get_transient( $this->cache_key );
    53 
    54         if( false === $remote || ! $this->cache_allowed ) {
    55 
    56             $remote = wp_remote_get(
    57                 'https://primer.gr/wp-content/uploads/2021/12/info.json',
    58                 array(
    59                     'timeout' => 10,
    60                     'headers' => array(
    61                         'Accept' => 'application/json'
    62                     )
    63                 )
    64             );
    65 
    66             if(
    67                 is_wp_error( $remote )
    68                 || 200 !== wp_remote_retrieve_response_code( $remote )
    69                 || empty( wp_remote_retrieve_body( $remote ) )
    70             ) {
    71                 return false;
    72             }
    73 
    74             set_transient( $this->cache_key, $remote, DAY_IN_SECONDS );
    75 
    76         }
    77 
    78         $remote = json_decode( wp_remote_retrieve_body( $remote ) );
    79 
    80         return $remote;
    81 
    82     }
    83 
    84 
    85     function info( $res, $action, $args ) {
    86 
    87         // print_r( $action );
    88         // print_r( $args );
    89 
    90         // do nothing if you're not getting plugin information right now
    91         if( 'plugin_information' !== $action ) {
    92             return false;
    93         }
    94 
    95         // do nothing if it is not our plugin
    96         if( $this->plugin_slug !== $args->slug ) {
    97             return false;
    98         }
    99 
    100         // get updates
    101         $remote = $this->request();
    102 
    103         if( ! $remote ) {
    104             return false;
    105         }
    106 
    107         $res = new stdClass();
    108 
    109         $res->name = $remote->name;
    110         $res->slug = $remote->slug;
    111         $res->version = $remote->version;
    112         $res->tested = $remote->tested;
    113         $res->requires = $remote->requires;
    114         $res->author = $remote->author;
    115         $res->author_profile = $remote->author_profile;
    116         $res->download_link = $remote->download_url;
    117         $res->trunk = $remote->download_url;
    118         $res->requires_php = $remote->requires_php;
    119         $res->last_updated = $remote->last_updated;
    120 
    121         $res->sections = array(
    122             'description' => $remote->sections->description,
    123             'installation' => $remote->sections->installation,
    124             'changelog' => $remote->sections->changelog
    125         );
    126 
    127         return $res;
    128 
    129     }
    130 
    131     public function update( $transient ) {
    132 
    133         if ( empty($transient->checked ) ) {
    134             return $transient;
    135         }
    136 
    137         $remote = $this->request();
    138 
    139         if(
    140             $remote
    141             && version_compare( $this->version, $remote->version, '<' )
    142             && version_compare( $remote->requires, get_bloginfo( 'version' ), '<' )
    143             && version_compare( $remote->requires_php, PHP_VERSION, '<' )
    144         ) {
    145             $res = new stdClass();
    146             $res->slug = $this->plugin_slug;
    147             $res->plugin = plugin_basename( __FILE__ );
    148             $res->new_version = $remote->version;
    149             $res->tested = $remote->tested;
    150             $res->package = $remote->download_url;
    151 
    152             $transient->response[ $res->plugin ] = $res;
    153 
    154         }
    155 
    156         return $transient;
    157 
    158     }
    159 
    160     public function purge(){
    161 
    162         //if (
    163           //  $this->cache_allowed
    164          //   && 'update' === $options['action']
    165         //    && 'plugin' === $options[ 'type' ]
    166       //  ) {
    167             // just clean the cache when new plugin version is installed
    168             delete_transient( $this->cache_key );
    169      //   }
    170 
    171     }
    172 
    173 
    174 }
    175 
    176 new PrimerMyData();
    177 //
    17832
    17933/**
     
    18236 * Rename this for your plugin and update it as you release new versions.
    18337 */
    184 define( 'PRIMER_VERSION', '2.0.7' );
    185 
     38define( 'PRIMER_VERSION', '2.0.8' );
    18639define( 'PRIMER_NAME', 'Primer MyData' );
    18740
     
    19649define( 'PRIMER_QR_IMAGE_DIR', $upload_dir['basedir'] . '/primer_qrs/' );
    19750define( 'PRIMER_QR_IMAGE_URL', $upload_dir['baseurl'] . '/primer_qrs/' );
    198 
    19951define( 'PRIMER_SERVER_PATH', $_SERVER["DOCUMENT_ROOT"].'/wp-content/plugins/primer-mydata' );
    20052
     
    20860        Primer_Activator::activate();
    20961    }
    210 
    21162    /**
    21263     * The code that runs during plugin deactivation.
     
    22071    register_activation_hook( __FILE__, 'activate_primer' );
    22172    register_deactivation_hook( __FILE__, 'deactivate_primer' );
    222 
    223 
    22473    /**
    22574     * The core plugin class that is used to define internationalization,
     
    23887     */
    23988    function run_primer() {
    240 
    24189        $plugin = new Primer();
    24290        $plugin->run();
    243 
    24491    }
    24592
    24693    add_action( 'plugins_loaded', 'run_primer' ); // wait until 'plugins_loaded' hook fires, for WP Multisite compatibility
    24794} else {
    248 
    24995    add_action('admin_notices', 'primer_error_notice');
    25096
     
    25298        global $current_screen;
    25399        if ($current_screen->parent_base == 'plugins') {
    254             echo '<div class="error"><p>Primer '.__('requires <a href="https://wordpress.org/plugins/woocommerce/" target="_blank">WooCommerce</a> to be activated to work. Please install and activate <a href="'.admin_url('plugin-install.php?tab=search&type=term&s=WooCommerce').'" target="_blank">Woocommerce</a> first.', 'primer').'</p></div>';
     100            echo '<div class="error"><p>Primer MyData '.__('requires <a href="https://wordpress.org/plugins/woocommerce/" target="_blank">WooCommerce</a> to be activated to work. Please install and activate <a href="'.admin_url('plugin-install.php?tab=search&type=term&s=WooCommerce').'" target="_blank">Woocommerce</a> first.', 'primer').'</p></div>';
    255101        }
    256102    }
    257 
    258103    $plugin = plugin_basename(__FILE__);
    259 
    260104    include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    261 
    262105    if(is_plugin_active($plugin)){
    263106        deactivate_plugins( $plugin);
    264107    }
    265 
    266108    if ( isset( $_GET['activate'] ) ) unset( $_GET['activate'] );
    267109
    268110}
    269 
    270 
    271 
    272 // Patch for Sage-based themes
    273 function primer_patch_for_sage_based_themes() {
    274     // The following is our own solution to the problem of Sage-based themes
    275     // which force their own "wrapper", injecting code into our templates where
    276     // it is not wanted, breaking them.
    277     // i.e.: https://discourse.roots.io/t/single-template-filter-from-plugins/6637
    278     global $wp_filter;
    279     $tag = 'template_include';
    280     $priority = 99;
    281     if ( ! isset( $wp_filter[ $tag ] ) ) {
    282         return FALSE;
    283     }
    284     if ( is_object( $wp_filter[ $tag ] ) && isset( $wp_filter[ $tag ]->callbacks ) ) {
    285         $fob       = $wp_filter[ $tag ];
    286         $callbacks = &$wp_filter[ $tag ]->callbacks;
    287     } else {
    288         $callbacks = &$wp_filter[ $tag ];
    289     }
    290     if ( ! isset( $callbacks[ $priority ] ) || empty( $callbacks[ $priority ] ) ) {
    291         return FALSE;
    292     }
    293     foreach ( (array) $callbacks[ $priority ] as $filter_id => $filter ) {
    294         if ( ! isset( $filter['function'] ) || ! is_array( $filter['function'] ) ) {
    295             continue;
    296         }
    297         if ( $filter['function'][1] !== 'wrap' ) {
    298             continue;
    299         }
    300         if ( isset( $fob ) ) {
    301             $fob->remove_filter( $tag, $filter['function'], $priority );
    302         } else {
    303             unset( $callbacks[ $priority ][ $filter_id ] );
    304             if ( empty( $callbacks[ $priority ] ) ) {
    305                 unset( $callbacks[ $priority ] );
    306             }
    307             if ( empty( $callbacks ) ) {
    308                 $callbacks = array();
    309             }
    310             unset( $GLOBALS['merged_filters'][ $tag ] );
    311         }
    312         return TRUE;
    313     }
    314     return FALSE;
    315 }
    316 add_action( 'get_template_part_primer-receipt-display', 'primer_patch_for_sage_based_themes' );
    317111function primer_timologio_for_wc_aade_fill() {
    318    // global $aade;
    319     $get_value = get_option( 'twfc_ls', true );
    320    // if ($aade != 'no' && $get_value === 'yes') {
    321112        $vat=sanitize_text_field($_POST['vat']);
    322113        $check= primer_check_for_valid_vat_aade($vat);
    323114        wp_send_json($check);
    324    // }
    325     wp_send_json([]);
    326115}
    327116add_action('wp_ajax_primer_timologio_for_wc_aade_fill', 'primer_timologio_for_wc_aade_fill');
    328 add_action('wp_ajax_nopriv_primer_timologio_for_wc_aade_fill', 'primer_timologio_for_wc_aade_fill');
    329 
    330 
    331117
    332118function primer_check_if_aade_isalive($timeout = 3) {
     
    351137        }
    352138}
    353 
    354139
    355140function primer_check_for_valid_vat_aade($vat, $country=null) {
  • primer-mydata/trunk/public/js/primer-public.js

    r2812297 r2848352  
    3636            var radiobtn = document.getElementById("billing_invoice_type_receipt");
    3737            radiobtn.checked = true;
    38         //$('#billing_invoice_type_receipt').trigger('change');
    3938        checkInvoiceFieldsVisibility($invoice_type.val());
    4039        function checkInvoiceFieldsVisibility(radio_val) {
    41             var required = '<abbr class="required" title="<?php echo $required; ?>">*</abbr>';
     40            var required = '<abbr class="required" title="required">*</abbr>';
    4241            var invoice_type = radio_val === 'primer_invoice';
    4342            var optional_element = '<span class="optional">(optional)</span>';
  • primer-mydata/trunk/views/get_order_list.php

    r2813047 r2848352  
    824824
    825825        if (!empty($_GET['primer_receipt_status'])) {
    826             $order_args['meta_key'] = 'receipt_status';
    827             $order_args['meta_value'] = sanitize_text_field($_GET['primer_receipt_status']);
    828         }
    829 
     826           // $order_args['meta_key'] = 'receipt_status';
     827           // $order_args['meta_value'] = sanitize_text_field($_GET['primer_receipt_status']);
     828            if(sanitize_text_field($_GET['primer_receipt_status']) == 'not_issued'){
     829                $order_args['meta_key'] = 'receipt_status';
     830                $order_args['meta_compare'] = 'NOT EXISTS';
     831                $order_args2['meta_key'] = 'receipt_status';
     832                $order_args2['meta_value'] = 'issued';
     833                $order_args2['meta_compare'] = 'NOT IN';
     834            } else {
     835                $order_args['meta_key'] = 'receipt_status';
     836                  $order_args['meta_value'] = sanitize_text_field($_GET['primer_receipt_status']);
     837            }
     838        }
    830839        $order_date_from = sanitize_text_field($_GET['order_date_from']);
    831840        $order_date_to = sanitize_text_field($_GET['order_date_to']);
  • primer-mydata/trunk/views/get_receipt_list.php

    r2812297 r2848352  
    1010    public $receipt_date_range = array();
    1111
    12     public function get() {
    13         $receipt_args = array(
    14             'posts_per_page' => -1,
     12    public function get($page_number) {
     13
     14        $posts_per_page = 20;
     15        $paged = $page_number;
     16        $receipt_args = array(
     17            'posts_per_page' => $posts_per_page,
     18            'paged' => $paged,
     19            'limit' => 20,
    1520            'post_type' => 'primer_receipt',
    1621            'post_status' => 'publish',
     
    157162    }
    158163
    159     public function get_with_params($receipt_date_from, $receipt_date_to, $receipt_customer, $receipt_status) {
     164    public function get_with_params($page_number, $receipt_date_from, $receipt_date_to, $receipt_customer, $receipt_status, $receipt_type) {
    160165        $receipt_status = isset($_GET['primer_receipt_status']) ? sanitize_text_field($_GET['primer_receipt_status']) : '';
     166        $receipt_type = isset($_GET['primer_receipt_type']) ? sanitize_text_field($_GET['primer_receipt_type']) : '';
    161167        $receipt_customer = isset($_GET['primer_receipt_client']) ? sanitize_text_field($_GET['primer_receipt_client']) : '';
    162168        $receipt_date_from = isset($_GET['receipt_date_from']) ? sanitize_text_field($_GET['receipt_date_from']) : '';
    163169        $receipt_date_to = isset($_GET['receipt_date_to']) ? sanitize_text_field($_GET['receipt_date_to']) : '';
    164 
     170        $posts_per_page = 20;
     171        $paged = $page_number;
     172        $search_term = trim( sanitize_text_field( wp_unslash( $_GET['s'] ?? '' ) ) );
    165173        $meta_values = array();
    166174
    167175        $receipt_args = array(
    168             'posts_per_page' => -1,
     176            'posts_per_page' => $posts_per_page,
     177            'paged' => $paged,
     178            'limit' => 20,
    169179            'post_type' => 'primer_receipt',
    170180            'post_status' => 'publish',
     
    174184            $meta_values['receipt_status'][] = $receipt_status;
    175185        }
     186
     187        if (!empty($receipt_type)) {
     188            $meta_values['receipt_type'][] = $receipt_type;
     189        }
    176190
    177191        if (!empty($receipt_customer)) {
     
    199213            );
    200214        }
     215        if ( ! empty( $search_term ) ) {
     216           // $receipt_args['order_id_to_receipt'] = array(intval(sanitize_text_field( wp_unslash( $_GET['s'] ))));
     217            $receipt_args['meta_query'][$i + 1]['relation'] = 'OR';
     218            $receipt_args['meta_query'][$i + 1][] = [
     219                'key' => 'order_id_to_receipt',
     220                'value' => array(intval(sanitize_text_field( wp_unslash( $_GET['s'] )))),
     221                'compare' => 'IN'];
     222            $receipt_args['meta_query'][$i + 1][] = [
     223                    'key' => '_primer_receipt_number',
     224                    'value' => array(intval(sanitize_text_field( wp_unslash( $_GET['s'] )))),
     225                    'compare' => 'IN'];
     226
     227        }
    201228
    202229
Note: See TracChangeset for help on using the changeset viewer.