Author: super_admin_v3x

wppizza / markup / pages / page.purchase-history.php

Users purchase history – page containing shortcode [wppizza type=”orderhistory”]. Displays purchases of registered/known users or login form if not logged in. Registration WP -> Settings -> General -> Anyone can register must be enabled for this to be useful. CSS Targeting Wrapper div element ID: 

wppizza / markup / pages / page.order.php

The main WPPizza order/checkout page as set in WPPizza -> Order Settings -> Global -> Order Page displaying the current order and customer’s personal information to be submitted to the shop. CSS Targeting Wrapper div element id: wppizza-order-wrap-orderpage (unique to this page) Wrapper div element 

wppizza / markup / pages / page.confirm-order.php

The WPPizza confirmation page, if enabled in WPPizza -> Order Form Settings -> Confirmation Page, displaying a non-editable version of the current order and customer’s personal information to be submitted to the shop.

CSS Targeting

  • Wrapper div element id: #wppizza-order-wrap-confirmationpage (unique to this page)
  • Wrapper div element class: .wppizza-order-wrap (used on all pages)

if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions. Please refer to “Modify Styles/Layout”

Filters available

apply filters by adding them to your child-theme’s functions.php (notes regarding functions.php)

  • filter name: wppizza_filter_pages_confirmorder_markup
    purpose: modify the html markup of the page as required

    @param: $markup array (array of markup elements)
    @param: $order_formatted array (array of order details)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_pages_confirmorder_markup', 'prefix_filter_pages_confirmorder_markup', 10, 2);
    function prefix_filter_pages_confirmorder_markup($markup, $order_formatted){
    
    	/* 
    		notes: 
    		use print_r($markup) to view array keys with their respective markup
    		use print_r($order_formatted) to view array containing order details
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    	/* example: adding a paragraph AFTER opening div element using standard php concatenation */
    	$markup['div_'] .= '<p>more text after opening div</p>'; 
    
    	/* example: adding a paragraph BEFORE opening div element  using standard php concatenation */
    	$markup['div_'] = '<p>more text before opening div</p>' . $markup['div_']; 
    
    	/* example: adding a paragraph AFTER opening div element using wppizza array_splice helper function */
    	$splice_before['myprefix_paragraph'] = '<p>more text after opening div</p>'; 
    	$markup = wppizza_array_splice($markup, $splice_before, 'div_' );
    
    	/* example: adding a paragraph BEFORE opening div element  using wppizza array_splice helper function */
    	$splice_after['myprefix_paragraph'] = '<p>more text before opening div</p>'; 	
    	$markup = wppizza_array_splice($markup, $splice_after, 'div_' , true);
    
    	/* example: removing wrapper div */
    	unset($markup['div_']);
    	unset($markup['_div']);
    
    	/* example: using actions of another plugin that by default outputs html to add it before the end of the form element */
    	ob_start(); # start buffering
    	do_action('other_plugin_output'); # run action of other plugin that outputs things
    	$buffer= ob_get_contents(); # capture buffer in variable
    	ob_end_clean(); # clean buffer			
    	$markup['_form'] = $buffer. $markup['_form']; # add buffered output before end of form
    
    return $markup;
    }
    		
  • filter name: wppizza_filter_confirmationpage_formfields
    purpose: modify the formfields

    @param: $array (array of formfield elements)
    @param: $order_formatted array (array of order details)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_confirmationpage_formfields', 'myprefix_filter_wppizza_confirmationpage_formfields', 10, 2);
    function myprefix_filter_wppizza_confirmationpage_formfields($formfields, $order_formatted){
    	/*
    		example: 
    		remove the 2nd formfield if any item in the cart belonged to the category with id 6
    	*/
    	$catId = 6 ;//the category id to search for
    	
    	$ffKey = 2 ;//which formfield to remove ( 1 to [n] - in this case the 2nd one ) 
    	
    	//search through all items in cart to see if any belongs to the category above
    	$search_for_category_id = array_search($catId, array_column($order_formatted['order']['items'], 'cat_id_selected'));
    	
    	// if any item belongs to category 6 , remove 2nd formfield
    	if($search_for_category_id !== false){
    		unset($formfields['wpppizza_confirm_'.$ffKey.'']);
    	}
    
    return $formfields;
    }
    		

Actions available

Actions should NOT output / echo / print anything, if you need to output any elements, use the filter provided (see above)

  • action: wppizza_confirmationpage
    purpose: run an action on wppizza confirmationpage

    @param: $order_results array (array of order parameters)
    @return: void

  • action: wppizza_confirmationpage_before_inputs
    purpose: run an action when there are additional “Confirmation Page – Formfields” enabled

    @param: $order_results array (array of order parameters)
    @return: void

  • examples: choose the most appropriate action hook from the list above, replacing wppizza_confirmationpage used for this example if necessary

    
    add_action('wppizza_confirmationpage', 'prefix_confirmationpage_myaction');
    function prefix_confirmationpage_myaction($order_results){
    
    	/* note: use print_r($order_results) to view order parameters */
    
    	/* 
    	#	run your code/action 
    	*/
    
    	/* do not output/echo anything - use the filter above instead if you need to*/
    return;
    }
    		

Editing files directly

ensure you have also read the “Modify/Edit Templates – Readme”

basepath: [plugin-path]/wppizza/templates/markup

filepath: [plugin-path]/wppizza/templates/markup/pages/page.confirm-order.php

Modules used in file

  • [basepath]/global/formfields.inputs.php
  • [basepath]/global/formfields.values.php
  • [basepath]/global/pages.pickup_note.php
  • [basepath]/order/itemised.php
  • [basepath]/order/summary.php

wppizza / markup / pages / page.processing.php

Payment processing page. A page that might be displayed when payment gateway responses are slow. Many payment gateways take payment on their own sites and send a notification in the background to the server when payment has been processed (or indeed is being declined , 

wppizza / markup / pages / page.thankyou.php

“Thank You” page after successful order. Will also display detailed order information if WPPizza -> Order Settings -> Global -> Show Order Details is enabled CSS Targeting Wrapper div element ID: #wppizza-order-thankyoupage-[blogid]-[orderid] (unique to this page and order – provided order exists) Wrapper div element 

wppizza / markup / pages / page.cancelled.php

“Order Cancelled” page when an order has been cancelled

CSS Targeting

  • Wrapper div element ID: #wppizza-order-cancelled (unique to this page)
  • Wrapper div element class: .wppizza-order-wrap (used on all pages)

if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions. Please refer to “Modify Styles/Layout”

Filters/Actions – Notes

There are typically 2 different ways payment gateways provide to cancel an order before payment is made. Some will send a notification in the background before allowing the customer to return to the site. If this is the case, the $cancel_type parameter referred to below will be ipn. If however the payment gateway needs a distinct link back to the website upon clicking of which the order will be cancelled, the $cancel_type parameter will be link

Filters available

apply filters by adding them to your child-theme’s functions.php (notes regarding functions.php)

  • filter name: wppizza_filter_pages_cancelled_markup
    purpose: modify the html markup of the page as required

    @param: $markup array (array of markup elements)
    @param: $order_formatted array (array of order details)
    @param: $cancel_type string (ipn | link) – see Notes above
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_pages_cancelled_markup', 'prefix_filter_pages_cancelled_markup', 10, 3);
    function prefix_filter_pages_cancelled_markup($markup, $order_formatted, $cancel_type){
    
    	/* 
    		notes: 
    		use print_r($markup) to view array keys with their respective markup
    		use print_r($order_formatted) to view array containing order details
    		$cancel_type is either 'ipn' or 'link' 
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    	/* example: adding a paragraph AFTER opening div element using standard php concatenation */
    	$markup['div_'] .= '<p>more text after opening div</p>'; 
    
    	/* example: adding a paragraph BEFORE opening div element  using standard php concatenation */
    	$markup['div_'] = '<p>more text before opening div</p>' . $markup['div_']; 
    
    	/* example: adding a paragraph AFTER opening div element using wppizza array_splice helper function */
    	$splice_before['myprefix_paragraph'] = '<p>more text after opening div</p>'; 
    	$markup = wppizza_array_splice($markup, $splice_before, 'div_' );
    
    	/* example: adding a paragraph BEFORE opening div element  using wppizza array_splice helper function */
    	$splice_after['myprefix_paragraph'] = '<p>more text before opening div</p>'; 	
    	$markup = wppizza_array_splice($markup, $splice_after, 'div_' , true);
    
    	/* example: removing the return to site/shop link*/
    	unset($markup['return_link']);
    
    
    	/* example: using actions of another plugin that by default outputs html to add it before the end of the form element */
    	ob_start(); # start buffering
    	do_action('other_plugin_output'); # run action of other plugin that outputs things
    	$buffer= ob_get_contents(); # capture buffer in variable
    	ob_end_clean(); # clean buffer			
    	$markup['_div'] = $buffer. $markup['_div']; # add buffered output before end of wrapper div
    
    return $markup;
    }
    		

Actions available

Actions should NOT output / echo / print anything, if you need to output any elements, use the filter provided (see above)

  • action: wppizza_cancelledpage
    purpose: run an action when an order has been cancelled

    @param: $order_results array
    @param: $cancel_type string (ipn | link) – see Notes above
    @return: void

  • examples:

    
    add_action('wppizza_cancelledpage', 'prefix_cancelledpage_myaction', 10, 2);
    function prefix_cancelledpage_myaction($order_results, $cancel_type){
    
    	/* 
    		note: use print_r($order_results) to view order parameters 
    		$cancel_type is either ipn or link 
    	*/
    
    	/* 
    	#	run your code/action 
    	*/
    
    	/* do not output/echo anything - use the filter above instead if you need to*/
    return;
    }
    		

Editing files directly

ensure you have also read the “Modify/Edit Templates – Readme”

basepath: [plugin-path]/wppizza/templates/markup

filepath: [plugin-path]/wppizza/templates/markup/pages/page.cancelled.php

Modules used in file

  • none

Modify Templates – Readme

Note: for modifying styles, colours, layout etc (i.e css declarations) please see the appropriate “Modify/Edit Styles/Layout” section in the documentation Generally, WPPizza layout – i.e html – elements can be modified by using filter hooks provided or – in the case of the loop/menu items 

wppizza / markup / order

Order details, used throughout the plugin in cart, pages and widgets Order details are either items that are currently in the cart (i.e from the current user session data) or from the database after an order has been processed such as in thank you pages 

wppizza / markup / order / itemised.php

Itemised order details in cart(s), pages, users purchase history and order related widgets

CSS Targeting

  • Wrapper table element class: .wppizza-order-itemised

if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions. Please refer to Modify Styles/Layout

Structure

Note: headers, rows and columns may be dynamically added or removed, depending on plugin settings. Generally however the structure is as follows. Use your browsers element inspector to determine assigned classes and id’s.

 <table class="wppizza-order-itemised">
	
	 <thead> (by default thead is not visible in cart)
		 <tr>
			 /* header column labels as set in WPPizza -> Localization */
			 <th> quantity </th>
			 <th> article </th>
			 <th> price </th> (not displayed in cart)
			 <th> taxrate </th> (only if multiple taxrates apply, but not in cart)
			 <th> total </th>
		 </tr>
	 </thead>

	 <tbody>
		 /* category - if displayed/enabled */
		 <tr>
			 <td colspan="5"> category name </td> (colspan dynamic)
		 </tr>

		 /* item details - one row per item */
		 <tr>
			 <td> article quantity </td>
			 <td> article name </td>
			 <td> article single price </td> (not displayed in cart)
			 <td> article taxrate </td>  (only if multiple taxrates apply, but not in cart)
			 <td> article total </td>
		 </tr>
	 </tbody>

 </table>

Filters available

apply filters by adding them to your child-theme’s functions.php (notes regarding functions.php)

  • filter name: wppizza_filter_order_item_header_markup
    purpose: modify columns within thead

    @param: $markup array (array of thead columns)
    @param: $txt array (array of localization strings in WPPizza -> Localization)
    @param: $type str (identifier for page(s) or cart )
    @param: $items array (array of items of order)
    @return: array

    examples:

    
    /* 
    important: in the cart widget, only the most basic header columns (keys) are being used/allowed by default
    if you want to add an additional array/key (using the wppizza_array_splice helper for example) 
    instead of appending/prepending it to one of the existing ones 
    you must set a filter priority of 100 or higher !
    */
    add_filter('wppizza_filter_order_item_header_markup', 'prefix_filter_order_item_header_markup', 10, 4);
    function prefix_filter_order_item_header_markup($markup, $txt, $type, $items){
    
    	/* 
    		notes: 
    		use print_r($markup) to view thead columns array keys with their respective markup
    		use print_r($txt) to view array of localization strings
    		use print_r($type) to get string that gets the caller page/cart
    		use print_r($items)  to view array of order items
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    	/* example: adding additional column header AFTER quantity using standard php concatenation */
    	$markup['thead_th_quantity'] .= '<th class="some_class">some header text</th>'; 
    
    
    	/* example: adding additional column header BEFORE quantity using standard php concatenation */
    	$markup['thead_th_quantity'] = '<th class="some_class">some header text</th>' . $markup['thead_th_quantity']; 
    
    
    
    	/* example: adding additional column header AFTER quantity using wppizza array_splice helper function */
    	$splice_after['myprefix_column'] = '<th class="some_class">some header text</th>'; 
    	$markup = wppizza_array_splice($markup, $splice_after, 'thead_th_quantity' );
    
    	/* example: adding additional column header BEFORE quantity using wppizza array_splice helper function */
    	$splice_before['myprefix_column'] = '<th class="some_class">some header text</th>'; 	
    	$markup = wppizza_array_splice($markup, $splice_before, 'thead_th_quantity' , true);
    
    
    	/* example: adding additional column header as 3rd header column (zero-indexed) */
    	$splice_numeric['myprefix_column'] = '<th class="some_class">some header text</th>'; 
    	$markup = wppizza_array_splice($markup, $splice_numeric, 2 );
    
    
    	/* example: removing quantity header */
    	unset($markup['thead_th_quantity']);
    
    
    return $markup;
    }
    		
  • filter name: wppizza_filter_order_items_markup
    purpose: modify array of itemised order before it is being processed for display

    @param: $markup array (array of markup elements)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_order_items_markup', 'prefix_filter_order_items_markup');
    function prefix_filter_order_items_markup($items){
    
    	/* 
    		notes: 
    		use print_r($items) to view order items array
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    	/* example: adding an additional key to each item */
    	foreach($items as $key => $item){
    		$items[$key]['my_key'] = 'some value';
    	}
    	
    
    return $items;
    }
    		
  • filter name: wppizza_filter_order_item_columns
    purpose: modify columns (td’s) for each itemised item

    @param: $markup array (array of menu_item_columns elements)
    @param: $key str (key of item)
    @param: $item array (array of item parameters for this item)
    @param: $items array (array of item parameters for ALL items)
    @param: $item_count int (number of items)
    @param: $order_id int (order id as set in db – if known)
    @param: $txt array (array of strings as set in WPPizza -> Localization)
    @param: $type str (identifier for page(s) or cart )

    @return: array

    examples:

    
    /* 
    important: in the cart widget, only the most basic columns (keys) are being used/allowed by default  
    if you want to add an additional array/key (using the wppizza_array_splice helper for example) 
    instead of appending/prepending it to one of the existing ones 
    you must set a filter priority of 100 or higher !
    */
    add_filter('wppizza_filter_order_item_columns', 'prefix_filter_order_item_columns', 10, 8);
    function prefix_filter_order_item_columns($markup, $key , $item, $items, $item_count, $order_id, $txt, $type){
    	
    	/* example: adding additional column AFTER quantity using standard php concatenation */
    	$markup['item_td_quantity'] .= '<td class="some_class">some text</td>'; 
    
    	/* example: adding additional column BEFORE quantity using standard php concatenation */
    	$markup['item_td_quantity'] = '<td class="some_class">some text</td>' . $markup['item_td_quantity']; 
    
    
    	/* example: adding additional column AFTER quantity using wppizza array_splice helper function */
    	$splice_after['myprefix_column'] = '<td class="some_class">some text</td>'; 
    	$markup = wppizza_array_splice($markup, $splice_after, 'item_td_quantity' );
    
    	/* example: adding additional column BEFORE quantity using wppizza array_splice helper function */
    	$splice_before['myprefix_column'] = '<td class="some_class">some text</td>'; 	
    	$markup = wppizza_array_splice($markup, $splice_before, 'item_td_quantity' , true);
    
    
    	/* example: adding additional column as 3rd column (zero-indexed) */
    	$splice_numeric['myprefix_column'] = '<td class="some_class">some text</td>'; 
    	$markup = wppizza_array_splice($markup, $splice_numeric, 2 );
    
    
    	/* example: removing quantity column */
    	unset($markup['item_td_quantity']);
    
    
    return $markup;
    }
    		
  • filter name: wppizza_filter_order_item_markup
    purpose: modify row(s) for each itemised item

    @param: $markup array (array of menu_item row (tr + columns) elements)
    @param: $key str (key of item)
    @param: $item array (array of item parameters for this item)
    @param: $items array (array of item parameters for ALL items)
    @param: $colspan int (how many columns are used)
    @param: $item_count int (number of items)
    @param: $order_id int (order id as set in db – if known)
    @param: $txt array (array of strings as set in WPPizza -> Localization)
    @param: $type str (identifier for page(s) or cart )

    @return: array

    examples:

    
    add_filter('wppizza_filter_order_item_markup', 'prefix_filter_order_item_markup', 10, 9);
    function prefix_filter_order_item_markup($markup, $key , $item, $items, $colspan, $item_count, $order_id, $txt, $type){
    
    
    	/* example: adding additional - full width - row after menu item with id 400 */
    	if($item['post_id'] == 400){
    		$markup['new_row_'.$item['post_id'].'] = '<tr><td colspan="'.$colspan.'">some text</td></tr>'; 
    	}
    
    
    return $markup;
    }
    		
  • filter name: wppizza_filter_order_itemised_markup
    purpose: modify array of itemised order before it is being processed for display

    @param: $markup array (array of markup elements)
    @param: $blog_id int (id of blog)
    @param: $order_id int (order id as set in db – if known)
    @param: $items array (array of item parameters of ALL items)
    @param: $txt array (array of strings as set in WPPizza -> Localization)
    @param: $colspan int (number of columns)
    @param: $type str (identifier for page(s) or cart )

    @return: array

    examples:

    
    
    add_filter('wppizza_filter_order_itemised_markup', 'prefix_filter_order_itemised_markup', 10, 7);
    function prefix_filter_order_itemised_markup($markup, $blog_id , $order_id, $items, $txt, $colspan, $type){
    
    	/* 
    		notes: 
    		use print_r($markup) to view markup array keys with their respective markup
    		use print_r($blog_id)  to get blog_id
    		use print_r($order_id)  to get order id
    		use print_r($items) to view array of items in cart
    		use print_r($txt) to view array of localization strings
    		use print_r($colspan) to get number of columns
    		use print_r($type) to get string that gets the caller page/cart
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    
    	/* example: adding a paragraph AFTER table element using standard php concatenation */
    	$markup['_table'] .= '<p>more text after div</p>'; 
    
    	/* example: adding a paragraph BEFORE table element  using standard php concatenation */
    	$markup['table_'] = '<p>more text before div</p>' . $markup['table_']; 
    
    	/* example: adding a tfoot AFTER thead element using wppizza array_splice helper function */
    	$splice_after['myprefix_foot_'] = '<tfoot>'; 
    	$splice_after['myprefix_foot_tr_'] = '<tr>'; 
    		$splice_after['myprefix_foot_td_'] = '<td colspan="'.$colspan.'">'; 
    				$splice_after['myprefix_foot_text'] = 'some text'; 
    		$splice_after['_myprefix_foot_td'] = '</td>'; 
    	$splice_after['_myprefix_foot_tr'] = '</tr>'; 	
    	$splice_after['_myprefix_foot'] = '</tfoot>'; 
    	
    	$markup = wppizza_array_splice($markup, $splice_after, '_thead' );
    
    
    	/* example: adding a tfoot BEFORE tbody element using wppizza array_splice helper function */
    	$splice_before['myprefix_foot_'] = '<tfoot>'; 
    	$splice_before['myprefix_foot_tr_'] = '<tr>'; 
    		$splice_before['myprefix_foot_td_'] = '<td colspan="'.$colspan.'">'; 
    				$splice_before['myprefix_foot_text'] = 'some text'; 
    		$splice_before['_myprefix_foot_td'] = '</td>'; 
    	$splice_before['_myprefix_foot_tr'] = '</tr>'; 	
    	$splice_before['_myprefix_foot'] = '</tfoot>'; 
    	
    	$markup = wppizza_array_splice($markup, $splice_before, 'tbody_', true );
    
    
    
    
    
    	/* example: using actions of another plugin that by default outputs html to add it after the table */
    	ob_start(); # start buffering
    	do_action('other_plugin_output'); # run action of other plugin that outputs things
    	$buffer= ob_get_contents(); # capture buffer in variable
    	ob_end_clean(); # clean buffer			
    	$markup['_table'] = $markup['_table'] . $buffer; # add buffered output after table
    
    
    
    
    return $markup;
    }
    		

Actions available

  • none

Editing files directly

ensure you have also read the Modify/Edit Templates

basepath: [plugin-path]/wppizza/templates/markup

filepath: [plugin-path]/wppizza/templates/markup/order/itemised.php

Modules used in file

  • none

Module used by template file(s)

  • [basepath]/cart/cart.container.php
  • [basepath]/pages/page.order.php
  • [basepath]/pages/page.confirm-order.php
  • [basepath]/pages/page.thankyou.php
  • [basepath]/pages/page.purchase-history.php
  • also used to fill minicart dynamically if “view order” has been enabled

wppizza / markup / order / summary.php

Order details summary in cart(s), pages, users purchase history and order related widgets CSS Targeting Wrapper table element class: .wppizza-order-summary if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions.