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-orders-wrap-orderhistory (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_purchasehistory_markup
    purpose: modify the html markup of the page as required

    @param: $markup array (array of markup elements)
    @param: $purchase_history array (array of purchase history – empty array if not logged in or no previous orders)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_pages_purchasehistory_markup', 'prefix_filter_pages_purchasehistory_markup', 10, 2);
    function prefix_filter_pages_purchasehistory_markup($markup, $purchase_history){
    
    	/* 
    		notes: 
    		use print_r($markup) to view array keys with their respective markup
    		use print_r($purchase_history) to view array of purchase_history (has distinct blog and order id's added for convenience)
    		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 fieldset element around each order details */
    	foreach($purchase_history as $key => $arr){	
    		unset($markup['fieldset_'.$key.'_']); # remove opening element
    		unset($markup['_fieldset_'.$key.'']); # remove closing element 
    	}
    
    	/* example: using actions of another plugin that by default outputs html to add it after the pagination */
    	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['pagination'] = $markup['pagination'] . $buffer; # add buffered output after pagination
    
    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_purchasehistory
    purpose: run an action on purchase history page

    @param: $purchase_history array (array of purchase history – empty array if not logged in or no previous orders)
    @return: void

  • action: wppizza_purchasehistory_noorders
    purpose: run an action if purchase history has no orders – (only if logged in)

    @param: $purchase_history array (empty array)
    @return: void

  • action: wppizza_purchasehistory_hasorders
    purpose: run an action if purchase history has orders – (only if logged in)

    @param: $purchase_history array (array of purchase history)
    @return: void

  • action: wppizza_purchasehistory_each_order
    purpose: run an action for each order in purchase history – (only if logged in)

    @param: $purchase_history array (array of order details for this particular order in loop)
    @return: void

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

    
    add_action('wppizza_purchasehistory', 'prefix_purchasehistory_myaction');
    function prefix_purchasehistory_myaction($purchase_history){
    
    	/* 
    		note: use print_r($purchase_history) to view 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.purchase-history.php

Modules used in file

  • [basepath]/global/login.php
  • [basepath]/order/itemised.php
  • [basepath]/order/summary.php
  • [basepath]/order/transaction_details.php