rge( [ 'manually' => __( 'Manually', 'woocommerce-pdf-invoices-packing-slips' ), ], apply_filters( 'wpo_wcpdf_document_triggers', [ 'single' => __( 'On single order action', 'woocommerce-pdf-invoices-packing-slips' ), 'bulk' => __( 'On bulk order action', 'woocommerce-pdf-invoices-packing-slips' ), 'my_account' => __( 'On my account', 'woocommerce-pdf-invoices-packing-slips' ), 'email_attachment' => __( 'On email attachment', 'woocommerce-pdf-invoices-packing-slips' ), 'document_data' => __( 'On order document data (number and/or date set manually)', 'woocommerce-pdf-invoices-packing-slips' ), ] ) ), 'multiple' => true, 'enhanced_select' => true, 'description' => __( 'Allows you to mark the document as printed, manually (in the order page) or automatically (based on the document creation context you have selected).', 'woocommerce-pdf-invoices-packing-slips' ), ) ), array( 'type' => 'setting', 'id' => 'unmark_printed', 'title' => __( 'Unmark as printed', 'woocommerce-pdf-invoices-packing-slips' ), 'callback' => 'checkbox', 'section' => $this->type, 'args' => array( 'option_name' => $option_name, 'id' => 'unmark_printed', 'description' => __( 'Adds a link in the order page to allow to remove the printed mark.', 'woocommerce-pdf-invoices-packing-slips' ), ) ), array( 'type' => 'setting', 'id' => 'use_latest_settings', 'title' => __( 'Always use most current settings', 'woocommerce-pdf-invoices-packing-slips' ), 'callback' => 'checkbox', 'section' => $this->type, 'args' => array( 'option_name' => $option_name, 'id' => 'use_latest_settings', 'description' => __( "When enabled, the document will always reflect the most current settings (such as footer text, document name, etc.) rather than using historical settings.", 'woocommerce-pdf-invoices-packing-slips' ) . "
" . __( "Caution: enabling this will also mean that if you change your company name or address in the future, previously generated documents will also be affected.", 'woocommerce-pdf-invoices-packing-slips' ), ) ), ); // remove/rename some fields when invoice number is controlled externally if ( apply_filters( 'woocommerce_invoice_number_by_plugin', false ) ) { $remove_settings = array( 'next_invoice_number', 'number_format', 'reset_number_yearly' ); foreach ( $settings_fields as $key => $settings_field ) { if ( in_array( $settings_field['id'], $remove_settings ) ) { unset( $settings_fields[$key] ); } elseif ( $settings_field['id'] == 'display_number' ) { // alternate description for invoice number $invoice_number_desc = __( 'Invoice numbers are created by a third-party extension.', 'woocommerce-pdf-invoices-packing-slips' ); if ( $config_link = apply_filters( 'woocommerce_invoice_number_configuration_link', null ) ) { /* translators: link */ $invoice_number_desc .= ' '.sprintf(__( 'Configure it here.', 'woocommerce-pdf-invoices-packing-slips' ), esc_attr( $config_link ) ); } $settings_fields[$key]['args']['description'] = ''.$invoice_number_desc.''; } } } return apply_filters( "wpo_wcpdf_{$this->type}_pdf_settings_fields", $settings_fields, $option_name, $this ); } /** * UBL settings fields */ public function get_ubl_settings_fields( $option_name ) { $settings_fields = array( array( 'type' => 'section', 'id' => $this->type.'_ubl', 'title' => '', 'callback' => 'section', ), array( 'type' => 'setting', 'id' => 'enabled', 'title' => __( 'Enable', 'woocommerce-pdf-invoices-packing-slips' ), 'callback' => 'checkbox', 'section' => $this->type.'_ubl', 'args' => array( 'option_name' => $option_name, 'id' => 'enabled', ) ), array( 'type' => 'setting', 'id' => 'attach_to_email_ids', 'title' => __( 'Attach to:', 'woocommerce-pdf-invoices-packing-slips' ), 'callback' => 'multiple_checkboxes', 'section' => $this->type.'_ubl', 'args' => array( 'option_name' => $option_name, 'id' => 'attach_to_email_ids', 'fields_callback' => array( $this, 'get_wc_emails' ), /* translators: directory path */ 'description' => ! is_writable( WPO_WCPDF()->main->get_tmp_path( 'attachments' ) ) ? '' . sprintf( __( 'It looks like the temp folder (%s) is not writable, check the permissions for this folder! Without having write access to this folder, the plugin will not be able to email invoices.', 'woocommerce-pdf-invoices-packing-slips' ), WPO_WCPDF()->main->get_tmp_path( 'attachments' ) ).'':'', ) ), array( 'type' => 'setting', 'id' => 'include_encrypted_pdf', 'title' => __( 'Include encrypted PDF:', 'woocommerce-pdf-invoices-packing-slips' ), 'callback' => 'checkbox', 'section' => $this->type.'_ubl', 'args' => array( 'option_name' => $option_name, 'id' => 'include_encrypted_pdf', 'description' => __( 'Include the PDF Invoice file encrypted in the UBL file.', 'woocommerce-pdf-invoices-packing-slips' ), ) ), ); return apply_filters( "wpo_wcpdf_{$this->type}_ubl_settings_fields", $settings_fields, $option_name, $this ); } /** * Document number title */ public function get_number_title() { $number_title = __( 'Invoice Number:', 'woocommerce-pdf-invoices-packing-slips' ); return apply_filters( "wpo_wcpdf_{$this->slug}_number_title", $number_title, $this ); } /** * Document date title */ public function get_date_title() { $date_title = __( 'Invoice Date:', 'woocommerce-pdf-invoices-packing-slips' ); return apply_filters( "wpo_wcpdf_{$this->slug}_date_title", $date_title, $this ); } } endif; // class_exists