Actions & Filter

Permalink Actions & Filter

Retourenschein PDF bietet Actions & Filter an, um Entwicklern einen Zugriff auf den Code des Add-Ons zu gewähren. Im Folgenden Abschnitt gibt es eine Auflistung aller Actions & Filter inklusive Beispielen.

Permalink class-wcreapdf-view-order-download.php

Name: wcreapdf_view_order_redirect_link
Art: Filter
Beschreibung: Mit wcreapdf_view_order_redirect_link wird geregelt, zu welcher Seite weitergeleitet wird, wenn der User nicht die Rechte hat, die PDF aufzurufen.

Beispiel:

add_filter( 'wcreapdf_view_order_redirect_link', 'my_wcreapdf_view_order_redirect_link' );
function my_wcreapdf_view_order_redirect_link( $location ) {
	return get_permalink( 268 );
}

Permalink class-wcreapdf-email-attachment.php

Name: wcreapdf_allowed_stati
Art: Filter
Beschreibung: Mit diesem Filter können an E-Mails, die im WooCommerce System registriert worden sind, die Retourenscheine angehangen werden.

Beispiel:

add_filter( 'wcreapdf_allowed_stati', 'my_wcreapdf_allowed_stati' );
function my_wcreapdf_allowed_stati( $allowed_stati ) {
	$allowed_stati[] = 'customer_note';
	return $allowed_stati;
}

Permalink class-wcreapdf-backend-options.php

Name: woocommerce_get_sections_preferences-wcreapdf
Art: Filter
Beschreibung: Mit diesem Filter können die Sections auf der Option Page geändert werden.

Beispiel:

add_filter( 'woocommerce_get_sections_preferences-wcreapdf', 'my_woocommerce_get_sections_preferences_wcreapdf' );
function my_woocommerce_get_sections_preferences_wcreapdf( $options ){
	$options[ 'my-settings-page' ]	= 'My Settings Page';
}

Name: wcreapdf_options_section
Art: Filter
Beschreibung: Mit diesem Filter fügst du die Setting Fields für die selbst erstellten Sections ein (siehe Filter woocommerce_get_sections_preferences-wcreapdf)

Beispiel:

add_filter( 'wcreapdf_options_section_my-settings-page', 'my_wcreapdf_options_section_my_settings_page' );
function my_wcreapdf_options_section_my_settings_page( $options ) {
	$options	= array(				
					'section_title' => array(
										'name' 	=> 'My Settings Page',
										'type' 	=> 'title',
										'desc' 	=> '',
										'id' 	=> 'my-settings-page'
									),
										
					array(
							'name' => 'Example Setting',
							'desc' => '
Example Desc',
							'tip'  => 'Example Tip',
							'id'   => WCREAPDF_Helper::get_wcreapdf_optionname( 'my-example-setting' ),
							'type' => 'text',
							'default'  => ''
						),
																	
					array( 'type' => 'sectionend', 'id' => 'my-settings-page' )	
				);
	return $options;	
}

Name: wcreapdf_fonts
Art: Filter
Beschreibung: Mit diesem Filter kann man die auszuwählenden Fonts ändern, dazu muss aber auch FPDF diese Fonts zur verfügung haben (siehe FAQs unten)

Beispiel:

add_filter( 'wcreapdf_fonts', 'my_wcreapdf_fonts' );
function my_wcreapdf_fonts( $fonts ) {
	$fonts[ 'myfont' ] = 'My Font';
	return $fonts;
}

Name: wcreapdf_email_options
Art: Filter
Beschreibung: Mit diesem Filter kann man weitere Fields für die Section der E-Mail Optionen hinzufügen.

Name: wcreapdf_pdf_options
Art: Filter
Beschreibung: Mit diesem Filter kann man weitere Fields für die Section der PDF Optionen hinzufügen.

Name: wcreapdf_pdf_test_options
Art: Filter
Beschreibung: Mit diesem Filter man kann weitere Fields für die Section der Test PDF Optionen hinzufügen

Beispielbeschreibung: Das Hinzufügen von Optionen ermöglicht, diese in Actions, die ggf. in class-wcreapdf-pdf.php aufgerufen werden, zu laden und dort zu nutzen.
Beispiel:

add_filter( 'wcreapdf_email_options', 'my_wcreapdf_email_options' );
function my_wcreapdf_email_options( $options ) {
$options[] = array(	
		'name' => 'Kundennotiz',
		'desc' => '
' . 'Meine Beschreibung',
		'tip'  => 'Mein Tip',
		'id'   => WCREAPDF_Helper::get_wcreapdf_optionname( 'customer_note' ),
		'type' => 'select',
		'default'  => 'off',
		'options' => array(
						'on'  => __( 'Yes', 'woocommerce-return-delivery-pdf' ),
						'off' => __( 'No', 'woocommerce-return-delivery-pdf' )
					)	
		);				
return $options;
}

Permalink class-wcreapdf-pdf.php

Für alle Filter in dieser Klasse ist es ratsam, das FPDF Manual (Tutorials) zu studieren.

Name: wcreapdf_reset_pdf_header_vars
Art: Filter
Beschreibung: Mit diesem Filter kann man die Variablen, die in der Header Methode initialisiert wurden, verändern und ggf. neue hinzufügen.

Beispiel:

add_filter( 'wcreapdf_reset_pdf_header_vars', 'my_wcreapdf_reset_pdf_header_vars' );
function my_wcreapdf_reset_pdf_header_vars( $variables ) {
	$variables[ 'my_font_size' ]		= 10.0 ;			// neue Variable $my_font_size
	$variables[ 'print_page_numbers' ]	= false;			// ueberschreibt Variable, dadurch werden die Seitenzahlen nicht mehr ausgegeben
	return $variables;
}

Name: wcreapdf_pdf_header
Art: Action
Beschreibung: Wenn die Action existiert, wird sie ausgeführt, dadurch kann ein eigener Header erstellt werden.

Beispiel:

add_action( 'wcreapdf_pdf_header', 'my_wcreapdf_pdf_header', 10, 2 );
function my_wcreapdf_pdf_header( $pdf, $variables ){
	extract( $variables, EXTR_OVERWRITE );
	$pdf->SetFont( $font, 'B' , $my_font_size );
	$pdf->Cell( 0, 10, 'My Header' . utf8_decode( $string_page ) . ' '. $this->PageNo(). ' / ' . $all_pages, 0, 1, 'R' );	
}

Name: wcreapdf_reset_pdf_footer_vars
Art: Filter
Beschreibung: Wenn die Action existiert, wird sie ausgeführt, dadurch kann ein eigener Footer erstellt werden.

Beispiel:

add_filter( 'wcreapdf_reset_pdf_footer_vars', 'my_wcreapdf_reset_pdf_footer_vars' );
function my_wcreapdf_reset_pdf_footer_vars( $variables ) {
	$variables[ 'footer_font_size' ]		= 5.0 ;			// ueberschreibt variable
	return $variables;
}

Name: wcreapd_pdf_footer
Art: Action
Beschreibung: Mit diesem Filter kann man die Variablen, die in der Footer Methode initialisiert wurden, verändern und ggf. neue hinzufügen.

Beispiel:

add_action( 'wcreapdf_pdf_footer', 'my_wcreapdf_pdf_footer', 10, 2 );
function my_wcreapdf_pdf_footer( $pdf, $variables ){
	extract( $variables, EXTR_OVERWRITE );
	$pdf->SetY( $footer_y );
	$pdf->SetFont( $font, 'B' , $footer_font_size );
	$pdf->MultiCell( 0, $footer_cell_height, utf8_decode( 'My tiny Footer: ' . $footer_text ), 0, $footer_text_align );	
}

Name: wcreapdf_reset_pdf_vars
Art: Filter
Beschreibung: Mit diesem Filter kann man die Variablen, die in der create_pdf Methode initialisiert wurden, verändern und ggf. neue hinzufügen.

Beispiel:

add_filter( 'wcreapdf_reset_pdf_vars', 'my_wcreapdf_reset_pdf_vars' );
function my_wcreapdf_reset_pdf_vars( $variables ) {
	$variables[ 'black' ]		= 50;			// dann ist die Schriftfarbe 'black' nicht mehr schwarz, sondern grau
	return $variables;
}

Name: wcreapdf_pdf_add_fonts
Art: Action
Beschreibung: Fügt Fonts hinzu (siehe FAQs unten).

Beispiel:

add_action( 'wcreapdf_pdf_custom_fonts', 'my_wcreapdf_pdf_custom_fonts' );
function my_wcreapdf_pdf_custom_fonts( $pdf ) {
	$pdf->AddFont( 'myfont', '', 'myfont.php' );
	$pdf->AddFont( 'myfont', 'B', 'myfont-bold.php' );
}

Name: wcreapdf_pdf_init
Art: Action
Beschreibung: Mit der Action kann man die Initialisierung der PDF selbst übernehmen.

Beispiel:

add_action( 'wcreapdf_pdf_init', 'my_wcreapdf_pdf_init', 10, 5 );
function my_wcreapdf_pdf_init( $pdf, $variables, $order, $test, $download ){
	extract( $variables, EXTR_OVERWRITE );		                                                              
	$pdf->cMargin = $cMargin;                                                      
	$pdf->SetMargins( 15, 10, 15 );                          
	$pdf->SetAutoPageBreak( true, 20 );                              
	$pdf->SetDrawColor( 150 );                              
	$pdf->SetFillColor( 222 );                                               
	$pdf->SetTextColor( 25 );                                                   
	$pdf->AliasNbPages();                                                          
	$pdf->AddPage();	
}

Name: wcreapdf_pdf_iamge_bind_or_shop_name
Art: Action
Beschreibung: Shoplogo oder Shopname.

Name: wcreapdf_pdf_addresses
Art: Action
Beschreibung: Adresse.

Name: wcreapdf_pdf_return_delivery
Art: Action
Beschreibung: Rücksendeadresse.

Name: wcreapdf_pdf_table_header
Art: Action
Beschreibung: Tabellenkopf.

Name: wcreapdf_pdf_table_content
Art: Action
Beschreibung: Tabellencontent.

Name: wcreapdf_pdf_delivery_reasons
Art: Action
Beschreibung: Rücksendegründe.

Name: wcreapdf_pdf_comments
Art: Action
Beschreibung: Anmerkungen.

Beispielbeschreibung: Mit diesen Actions ist es möglich, den jeweiligen Bereich der PDF selbst zu gestalten.
Dazu empfiehlt es sich, sich auf den Code zu beziehen, der ausgeführt wird, wenn keine Action ausgeführt wird und diesen nach seinen Wünschen anzupassen.
Am Anfang jeder Action sollte extract( $variables, EXTR_OVERWRITE ); stehen, um die initialisierten Variablen mit Standardwerten zu laden.

Beispiel:

add_action( 'wcreapdf_pdf_comments', 'my_wcreapdf_pdf_comments', 10, 5 );
function my_wcreapdf_pdf_comments( $pdf, $variables, $order, $test, $download ) {				
	extract( $variables, EXTR_OVERWRITE );	
	if ( $there_are_reasons ){
		$pdf->Cell( $return_delivery_row_width, $cell_big, '', 0, 0, 'L' );  
	}                                                                          
	$pdf->SetFont( $font, $bold14, $big );
	$pdf->Cell( 0, $cell_big, utf8_decode( $string_comments . ":" ) , 0, 1, 'L' );
	$pdf->SetFont( $font, $bold15, $small );
	$pdf->Ln( $br8 );
	// lines for comments
	$pdf->Cell( 0, ( 0.5 * $cell_big ), '', 0, 1, 'L' );
	for ( $i = 1; $i Cell( $beginn_comment_lines, ( 0.75 * $height_comment_line ), '' , 0, 0, 'L' );	// kleinere Zeilen
		}
		$pdf->Cell( 0, ( 0.75 * $height_comment_line ), '' , 'T', 1, 'L' );
	}
}

Name: wcreapdf_pdf_reset
Art: Action
Beschreibung: Wenn eine solche Action existiert, wird unset( $pdf ); $pdf = new WCREAPDF_Pdf( $pdf_orientation, $pdf_unit, $pdf_size ); ausgeführt, d.h. alles, was bisher geschah, wird resetet. Anschließend wird die Action ausgeführt, d.h. man kann die komplette PDF Erstellung in einer Funktion neu übernehmen. Nicht betroffen davon sind Footer und Header.

Beispiel:

add_action( 'wcreapdf_pdf_reset', 'my_wcreapdf_pdf_reset', 10, 5 );
function my_wcreapdf_pdf_reset( $pdf, $variables, $order, $test, $download ) {
	extract( $variables, EXTR_OVERWRITE );
	$pdf->AliasNbPages();  
	$pdf->AddPage();	
	$pdf->SetTextColor( 0, 0, 200 );
	$pdf->SetFont( $font, 'B' , 20 );
	$pdf->Ln( 20 );
	$pdf->Cell( 0, 30, 'My PDF' , 0, 0, 'C' );
}

Name: wcrepdf_custom_test_address
Art: Filter
Beschreibung: Mit diesem Filter kann man die Absenderadresse der Test PDF ändern.

Beispiel:

add_filter( 'wcrepdf_custom_test_address', 'my_wcrepdf_custom_test_address' );
function my_wcrepdf_custom_test_address( $test_address ) {
	return $test_adress . '
GERMANY';
}

Name: wcrepdf_custom_test_products
Art: Filter
Beschreibung: Mit diesem Filter kann man die Beispielprodukte in der Test PDF ändern.

Beispiel:

add_filter( 'wcrepdf_custom_test_products', 'my_wcrepdf_custom_test_products' );
function my_wcrepdf_custom_test_products( $test_products ) {
	$test_products[ 2 ] = array( 	'sku' 		=> 878965412,
					'name'		=> 'Example Product',
					'quantity'	=> 2,
					'meta'		=> 'Example Meta: Grey'
				);
	return $test_products;
}

Name: wcreapdf_reset_pdf_image_vars
Art: Filter
Beschreibung: Mit diesem Filter kann man die Variablen, die in der add_header_image Methode initialisiert wurden, verändern und ggf. neue hinzufügen. Er kann die Variablen für die Image Positionierung reseten.

Beispiel:

add_filter( 'wcreapdf_reset_pdf_image_vars', 'my_wcreapdf_reset_pdf_image_vars' );
function my_wcreapdf_reset_pdf_image_vars( $variables ) {
	return array ( 'image_height' => 30 );	
}

Name: wcreapdf_pdf_add_image
Art: Action
Beschreibung: Mit dieser Action kann man das Einfügen des Images in die PDF verändern, beispielsweise die Positionierung.

Beispiel:

add_action( 'wcreapdf_pdf_add_image', 'my_wcreapdf_pdf_add_image', 10, 6 );
function my_wcreapdf_pdf_add_image( 	$pdf, $image_cell_small, $image_height, $image_x, $image_y, $variables ) {
	extract( $variables, EXTR_OVERWRITE );
	$pdf->Image( 'image.' . $extension, $image_x, $image_y, 20, 20 ); // bildweite und hoehe sind 2 cm
	$current_y	= $this->GetY();
	$pdf->SetY( $image_height + $image_cell_small);
}

Name: wcreapdf_pdf_add_image
Art: Filter
Beschreibung: Dieser Filter ändert die Ausgabe der Meta Daten (label und value) eines Items.

Beispiel:

add_filter( 'wcreapdf_pdf_item_meta_string', 'my_wcreapdf_pdf_item_meta_string', 10, 2 );
function my_wcreapdf_pdf_item_meta_string( $string, $single_meta_array ){
	return  $single_meta_array[ 'label' ] . ' :: ' . $single_meta_array[ 'value' ];		// ' ::' anstatt ':' z.B. 'Size :: L'
}

Name: wcreapdf_pdf_all_meta
Art: Filter
Beschreibung: Dieser Filter ändert die Ausgabe der gesamten Meta Daten eines Items.

Beispiel:

add_filter( 'wcreapdf_pdf_all_meta', 'my_wcreapdf_pdf_all_meta', 10, 2 );
function my_wcreapdf_pdf_all_meta( $string, $meta_array ){
	return str_replace( ',', ' //', $string );	// z. B.: 'Size :: L // Colour :: Blue // Example-Key :: Example-Value'
}

Permalink Wenn Sie vom Add-On lieber mit Sie angesprochen werden wollen

add_filter( 'load_textdomain_mofile', 'wcreapdf_language_de_sie', 10, 2 );
function wcreapdf_language_de_sie( $mofile, $domain ) {
    if ( 'woocommerce-return-delivery-pdf' === $domain ) {
		return str_replace( '-de_DE', '-de_DE_Sie', $mofile );
	}
    return $mofile;
}

Permalink Einen eigenen Font in der PDF nutzen

Die Schriften müssen als TrueType vorliegen.

1. Schritt: Actions und Filter. Beachten Sie, dass der im Filter wcreapdf_fonts verwendete key ( ‘myfont’ ) identisch sein muss mit der Font Bezeichnung in der action wcreapdf_pdf_custom_fonts

add_filter( 'wcreapdf_fonts', 'my_wcreapdf_fonts' );
function my_wcreapdf_fonts( $fonts ) {
	$fonts[ 'myfont' ] = 'My Font';
	return $fonts;
}

add_action( 'wcreapdf_pdf_custom_fonts', 'my_wcreapdf_pdf_custom_fonts' );
	function my_wcreapdf_pdf_custom_fonts( $pdf ) {
	$pdf->AddFont( 'myfont', '', 'myfont.php' );
	$pdf->AddFont( 'myfont', 'B', 'myfont-bold.php' );
}

2. Schritt: Nutzen Sie das MakeFont Utility der FPDF Bibliothek (http://www.fpdf.org/makefont/)

3. Schritt: Die durch das MakeFont Utility erhaltenen Dateien (*.z und *.php Dateien) in den Ordner wp-content/cache/woocommerce-return-delivery-pdf/fonts kopieren. Achte darauf, dass die Dateien so benannt sind, wie in der Aciton wcreapdf_pdf_custom_fonts angegeben.

Permalink Mehrere Fonts nutzen

Möchtenst du in einer Action mehrere Fonts nutzen, so gehe wie oben beschrieben vor.
Möchtenst du neben deinem Custom Font auch einen der FPDF Core Fonts nutzen (Helvetica, Times, Courier), so musst du die entsprechenden Font Dateien (*.php) auch in den Ordner wp-content/cache/woocommerce-return-delivery-pdf/fonts kopieren. Die Dateien befinden sich im Add-On Ordner unter woocommerce-german-market/add-ons/woocommerce-return-delivery-pdf/vendors/fpdf/font

Beispielsweise führst du die Hooks dann so aus:

add_filter( 'wcreapdf_fonts', 'my_wcreapdf_fonts' );
function my_wcreapdf_fonts( $fonts ) {
	$fonts[ 'myfonts' ] = 'My Fonts';
	return $fonts;
}
			
add_action( 'wcreapdf_pdf_custom_fonts', 'my_wcreapdf_pdf_custom_fonts' );
	function my_wcreapdf_pdf_custom_fonts( $pdf ) {
	// Mein eigener Font		
	$pdf->AddFont( 'myfont', '', 'myfont.php' );
	$pdf->AddFont( 'myfont', 'B', 'myfont-bold.php' );
	// Core Font neu einbinden		
	$pdf->AddFont( 'courier', '', 'courier.php' );
	$pdf->AddFont( 'courier', 'B', 'courierb.php' );
	$pdf->AddFont( 'courier', 'I', 'courieri.php' );
	$pdf->AddFont( 'courier', 'BI', 'courierbi.php' );
}