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