order_id = $order_id; $this->invoice_type = $invoice_type; } /** * is_created. */ function is_created() { return ( '' != get_post_meta( $this->order_id, '_wcj_invoicing_' . $this->invoice_type . '_date', true ) ); } /** * delete. * * @version 3.2.2 */ function delete() { update_post_meta( $this->order_id, '_wcj_invoicing_' . $this->invoice_type . '_number_id', 0 ); update_post_meta( $this->order_id, '_wcj_invoicing_' . $this->invoice_type . '_date', '' ); if ( 'yes' === get_option( 'wcj_invoicing_' . $this->invoice_type . '_sequential_enabled', 'no' ) ) { $option_name = 'wcj_invoicing_' . $this->invoice_type . '_numbering_counter'; $the_invoice_counter = get_option( $option_name, 1 ); update_option( $option_name, ( $the_invoice_counter - 1 ) ); } } /** * create. * * @version 3.2.2 * @todo use mysql transaction enabled (as in "wcj_order_number_use_mysql_transaction_enabled") */ function create( $date = '' ) { $order_id = $this->order_id; $invoice_type = $this->invoice_type; if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type . '_skip_zero_total', 'no' ) ) { $_order = wc_get_order( $order_id ); if ( 0 == $_order->get_total() ) { return; } } if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type . '_sequential_enabled', 'no' ) ) { $the_invoice_number = get_option( 'wcj_invoicing_' . $invoice_type . '_numbering_counter', 1 ); update_option( 'wcj_invoicing_' . $invoice_type . '_numbering_counter', ( $the_invoice_number + 1 ) ); } else { $the_invoice_number = $order_id; } $the_date = ( '' == $date ) ? current_time( 'timestamp' ) : $date; update_post_meta( $order_id, '_wcj_invoicing_' . $invoice_type . '_number_id', $the_invoice_number ); update_post_meta( $order_id, '_wcj_invoicing_' . $invoice_type . '_date', $the_date ); } /** * get_file_name. * * @version 3.5.0 */ function get_file_name() { $_file_name = sanitize_file_name( do_shortcode( get_option( 'wcj_invoicing_' . $this->invoice_type . '_file_name', '' ) ) ); if ( '' === $_file_name ) { $_file_name = $this->invoice_type . '-' . $this->order_id; } return apply_filters( 'wcj_get_' . $this->invoice_type . '_file_name', $_file_name . '.pdf', $this->order_id ); } /** * get_invoice_date. */ function get_invoice_date() { $the_date = get_post_meta( $this->order_id, '_wcj_invoicing_' . $this->invoice_type . '_date', true ); return apply_filters( 'wcj_get_' . $this->invoice_type . '_date', $the_date, $this->order_id ); } /** * get_invoice_number. * * @version 3.2.2 */ function get_invoice_number() { $replaced_values = array( '%prefix%' => get_option( 'wcj_invoicing_' . $this->invoice_type . '_numbering_prefix', '' ), '%counter%' => sprintf( '%0' . get_option( 'wcj_invoicing_' . $this->invoice_type . '_numbering_counter_width', 0 ) . 'd', get_post_meta( $this->order_id, '_wcj_invoicing_' . $this->invoice_type . '_number_id', true ) ), '%suffix%' => get_option( 'wcj_invoicing_' . $this->invoice_type . '_numbering_suffix', '' ), ); return apply_filters( 'wcj_get_' . $this->invoice_type . '_number', do_shortcode( str_replace( array_keys( $replaced_values ), $replaced_values, get_option( 'wcj_invoicing_' . $this->invoice_type . '_numbering_template', '%prefix%%counter%%suffix%' ) ) ), $this->order_id ); } } endif;