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