Passed
Push — master ( 06f864...96d120 )
by Brian
06:26
created
templates/payment-forms/embed.php 1 patch
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -1,32 +1,32 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-	// Is the request set up correctly?
4
-	if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
5
-	return aui()->alert(
3
+    // Is the request set up correctly?
4
+    if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
5
+    return aui()->alert(
6 6
         array(
7
-	'type'    => 'warning',
8
-	'content' => __( 'No payment form or item selected', 'invoicing' ),
7
+    'type'    => 'warning',
8
+    'content' => __( 'No payment form or item selected', 'invoicing' ),
9 9
         )
10 10
 );
11 11
 wp_die( esc_html__( 'No payment form or item selected', 'invoicing' ), 400 );
12
-	}
12
+    }
13 13
 
14
-	// Payment form or button?
15
-	if ( ! empty( $_GET['form'] ) ) {
14
+    // Payment form or button?
15
+    if ( ! empty( $_GET['form'] ) ) {
16 16
 
17
-	$shortcode = sprintf(
17
+    $shortcode = sprintf(
18 18
         '[getpaid form=%s]',
19 19
         (int) $_GET['form']
20 20
 );
21 21
 
22
-	} else {
22
+    } else {
23 23
 
24
-	$shortcode = sprintf(
24
+    $shortcode = sprintf(
25 25
         '[getpaid item=%s]',
26 26
         esc_attr( urldecode( $_GET['item'] ) )
27
-	);
27
+    );
28 28
 
29
-	}
29
+    }
30 30
 
31 31
 ?>
32 32
 
@@ -44,12 +44,12 @@  discard block
 block discarded – undo
44 44
 
45 45
         <title>GetPaid</title>
46 46
 		<?php
47
-			wp_enqueue_scripts();
48
-			wp_print_styles();
49
-			wp_print_head_scripts();
50
-			wp_custom_css_cb();
51
-			wpinv_get_template( 'frontend-head.php' );
52
-		?>
47
+            wp_enqueue_scripts();
48
+            wp_print_styles();
49
+            wp_print_head_scripts();
50
+            wp_custom_css_cb();
51
+            wpinv_get_template( 'frontend-head.php' );
52
+        ?>
53 53
 
54 54
 		<style type="text/css">
55 55
 			.body{ 
@@ -83,11 +83,11 @@  discard block
 block discarded – undo
83 83
 	<body class="body page-template-default page">
84 84
 		<div id="getpaid-form-embed" class="container my-5 page type-page status-publish hentry post post-content">
85 85
 			<?php
86
-				do_action( 'getpaid_payment_form_embed_top' );
87
-				echo do_shortcode( $shortcode );
88
-				do_action( 'getpaid_payment_form_embed_bottom' );
89
-				wpinv_get_template( 'frontend-footer.php' );
90
-			?>
86
+                do_action( 'getpaid_payment_form_embed_top' );
87
+                echo do_shortcode( $shortcode );
88
+                do_action( 'getpaid_payment_form_embed_bottom' );
89
+                wpinv_get_template( 'frontend-footer.php' );
90
+            ?>
91 91
 		</div>
92 92
 		<?php wp_footer(); ?>
93 93
 	</body>
Please login to merge, or discard this patch.
templates/payment-forms/form.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
 
49 49
         // And the optional invoice id.
50 50
         if ( ! empty( $form->invoice ) ) {
51
-		    getpaid_hidden_field( 'invoice_id', $form->invoice->get_id() );
51
+            getpaid_hidden_field( 'invoice_id', $form->invoice->get_id() );
52 52
         }
53 53
 
54 54
         // We also want to include the form id.
@@ -68,12 +68,12 @@  discard block
 block discarded – undo
68 68
 
69 69
                     foreach ( $form->get_elements() as $element ) {
70 70
 
71
-					if ( isset( $element['type'] ) ) {
72
-						$grid_class = getpaid_get_form_element_grid_class( $element );
73
-						echo "<div class='" . esc_attr( $grid_class ) . "'>";
74
-						do_action( 'getpaid_payment_form_element', $element, $form );
75
-						do_action( "getpaid_payment_form_element_{$element['type']}_template", $element, $form );
76
-						echo '</div>';
71
+                    if ( isset( $element['type'] ) ) {
72
+                        $grid_class = getpaid_get_form_element_grid_class( $element );
73
+                        echo "<div class='" . esc_attr( $grid_class ) . "'>";
74
+                        do_action( 'getpaid_payment_form_element', $element, $form );
75
+                        do_action( "getpaid_payment_form_element_{$element['type']}_template", $element, $form );
76
+                        echo '</div>';
77 77
                         }
78 78
 }
79 79
 
Please login to merge, or discard this patch.
templates/emails/invoice-item.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -30,40 +30,40 @@
 block discarded – undo
30 30
                 // Item name.
31 31
                 if ( 'name' == $column ) {
32 32
 
33
-				// Display the name.
34
-				echo '<div class="wpinv_email_cart_item_title">' . esc_html( $item->get_name() ) . '</div>';
33
+                // Display the name.
34
+                echo '<div class="wpinv_email_cart_item_title">' . esc_html( $item->get_name() ) . '</div>';
35 35
 
36
-				// And an optional description.
37
-				$description = $item->get_description();
36
+                // And an optional description.
37
+                $description = $item->get_description();
38 38
 
39
-				if ( ! empty( $description ) ) {
40
-					echo "<p class='small'>" . wp_kses_post( $description ) . "</p>";
39
+                if ( ! empty( $description ) ) {
40
+                    echo "<p class='small'>" . wp_kses_post( $description ) . "</p>";
41 41
                     }
42 42
 }
43 43
 
44 44
                 // Item price.
45 45
                 if ( 'price' == $column ) {
46 46
 
47
-				// Display the item price (or recurring price if this is a renewal invoice)
48
-				$price = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price();
49
-				wpinv_the_price( $price, $invoice->get_currency() );
47
+                // Display the item price (or recurring price if this is a renewal invoice)
48
+                $price = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price();
49
+                wpinv_the_price( $price, $invoice->get_currency() );
50 50
 
51 51
                 }
52 52
 
53 53
                 // Item quantity.
54 54
                 if ( 'quantity' == $column ) {
55
-				echo (float) $item->get_quantity();
55
+                echo (float) $item->get_quantity();
56 56
                 }
57 57
 
58 58
                 // Tax rate.
59 59
                 if ( 'tax_rate' == $column ) {
60
-				echo floatval( round( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
60
+                echo floatval( round( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
61 61
                 }
62 62
 
63 63
                 // Item sub total.
64 64
                 if ( 'subtotal' == $column ) {
65
-				$subtotal = $invoice->is_renewal() ? $item->get_recurring_sub_total() : $item->get_sub_total();
66
-				wpinv_the_price( $subtotal, $invoice->get_currency() );
65
+                $subtotal = $invoice->is_renewal() ? $item->get_recurring_sub_total() : $item->get_sub_total();
66
+                wpinv_the_price( $subtotal, $invoice->get_currency() );
67 67
                 }
68 68
 
69 69
                 // Fires when printing a line item column.
Please login to merge, or discard this patch.
templates/emails/fee-item.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -30,21 +30,21 @@  discard block
 block discarded – undo
30 30
                 // Item name.
31 31
                 if ( 'name' == $column ) {
32 32
 
33
-				// Display the name.
34
-				echo '<div class="wpinv_email_cart_item_title">' . esc_html( $fee['name'] ) . '</div>';
33
+                // Display the name.
34
+                echo '<div class="wpinv_email_cart_item_title">' . esc_html( $fee['name'] ) . '</div>';
35 35
 
36
-				// And an optional description.
37
-				$description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
38
-				echo wp_kses_post( "<p class='small'>$description</p>" );
36
+                // And an optional description.
37
+                $description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
38
+                echo wp_kses_post( "<p class='small'>$description</p>" );
39 39
 
40 40
                 }
41 41
 
42 42
                 // Item price.
43 43
                 if ( 'price' == $column ) {
44 44
 
45
-				// Display the item price (or recurring price if this is a renewal invoice)
46
-				if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
47
-					wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
45
+                // Display the item price (or recurring price if this is a renewal invoice)
46
+                if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
47
+                    wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
48 48
                     } else {
49 49
                         wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
50 50
                     }
@@ -52,18 +52,18 @@  discard block
 block discarded – undo
52 52
 
53 53
                 // Item quantity.
54 54
                 if ( 'quantity' == $column ) {
55
-				echo '&mdash;';
55
+                echo '&mdash;';
56 56
                 }
57 57
 
58 58
                 // Item tax.
59 59
                 if ( 'tax_rate' == $column ) {
60
-				echo '&mdash;';
60
+                echo '&mdash;';
61 61
                 }
62 62
 
63 63
                 // Item sub total.
64 64
                 if ( 'subtotal' == $column ) {
65
-				if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
66
-					wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
65
+                if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
66
+                    wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
67 67
                 } else {
68 68
                     wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
69 69
                 }
Please login to merge, or discard this patch.
templates/invoice-receipt.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -126,25 +126,25 @@
 block discarded – undo
126 126
 
127 127
             if ( ! empty( $invoice_actions ) ) {
128 128
 
129
-			echo '<div class="wpinv-receipt-actions text-right mt-1 mb-4">';
129
+            echo '<div class="wpinv-receipt-actions text-right mt-1 mb-4">';
130 130
 
131
-			foreach ( $invoice_actions as $key => $invoice_action ) {
131
+            foreach ( $invoice_actions as $key => $invoice_action ) {
132 132
 
133
-				$key    = sanitize_html_class( $key );
134
-				$class  = empty( $invoice_action['class'] ) ? 'btn-dark' : sanitize_html_class( $invoice_action['class'] );
135
-				$url    = empty( $invoice_action['url'] ) ? '#' : esc_url( $invoice_action['url'] );
136
-				$attrs  = empty( $invoice_action['attrs'] ) ? '' : $invoice_action['attrs'];
137
-				$anchor = esc_html( $invoice_action['name'] );
133
+                $key    = sanitize_html_class( $key );
134
+                $class  = empty( $invoice_action['class'] ) ? 'btn-dark' : sanitize_html_class( $invoice_action['class'] );
135
+                $url    = empty( $invoice_action['url'] ) ? '#' : esc_url( $invoice_action['url'] );
136
+                $attrs  = empty( $invoice_action['attrs'] ) ? '' : $invoice_action['attrs'];
137
+                $anchor = esc_html( $invoice_action['name'] );
138 138
 
139
-				echo wp_kses_post( "<a href='$url' class='btn btn-sm ml-1 $class $key' $attrs>$anchor</a>" );
139
+                echo wp_kses_post( "<a href='$url' class='btn btn-sm ml-1 $class $key' $attrs>$anchor</a>" );
140 140
                 }
141 141
 
142
-			echo '</div>';
142
+            echo '</div>';
143 143
 
144 144
             }
145 145
 
146 146
             if ( ! empty( $alert ) ) {
147
-			echo wp_kses_post( $alert );
147
+            echo wp_kses_post( $alert );
148 148
             }
149 149
 
150 150
         ?>
Please login to merge, or discard this patch.
includes/admin/class-getpaid-post-types-admin.php 1 patch
Indentation   +757 added lines, -757 removed lines patch added patch discarded remove patch
@@ -13,719 +13,719 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Post_Types_Admin {
14 14
 
15 15
     /**
16
-	 * Hook in methods.
17
-	 */
18
-	public static function init() {
19
-
20
-		// Init metaboxes.
21
-		GetPaid_Metaboxes::init();
22
-
23
-		// Filter the post updated messages.
24
-		add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
-
26
-		// Filter post actions.
27
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
-		add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
-
30
-		// Invoice table columns.
31
-		add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
-		add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
-		add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
-		add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
-
36
-		// Items table columns.
37
-		add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
-		add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
-		add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
-		add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
-		add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
-		add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
-
44
-		// Payment forms columns.
45
-		add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
-		add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
-
49
-		// Discount table columns.
50
-		add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
-		add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
-
53
-		// Deleting posts.
54
-		add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
-		add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
-
57
-		add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
-	}
59
-
60
-	/**
61
-	 * Post updated messages.
62
-	 */
63
-	public static function post_updated_messages( $messages ) {
64
-		global $post;
65
-
66
-		$messages['wpi_discount'] = array(
67
-			0  => '',
68
-			1  => __( 'Discount updated.', 'invoicing' ),
69
-			2  => __( 'Custom field updated.', 'invoicing' ),
70
-			3  => __( 'Custom field deleted.', 'invoicing' ),
71
-			4  => __( 'Discount updated.', 'invoicing' ),
72
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
-			6  => __( 'Discount updated.', 'invoicing' ),
74
-			7  => __( 'Discount saved.', 'invoicing' ),
75
-			8  => __( 'Discount submitted.', 'invoicing' ),
76
-			9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
-			10 => __( 'Discount draft updated.', 'invoicing' ),
78
-		);
79
-
80
-		$messages['wpi_payment_form'] = array(
81
-			0  => '',
82
-			1  => __( 'Payment Form updated.', 'invoicing' ),
83
-			2  => __( 'Custom field updated.', 'invoicing' ),
84
-			3  => __( 'Custom field deleted.', 'invoicing' ),
85
-			4  => __( 'Payment Form updated.', 'invoicing' ),
86
-			5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
-			6  => __( 'Payment Form updated.', 'invoicing' ),
88
-			7  => __( 'Payment Form saved.', 'invoicing' ),
89
-			8  => __( 'Payment Form submitted.', 'invoicing' ),
90
-			9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
-			10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
-		);
93
-
94
-		return $messages;
95
-
96
-	}
97
-
98
-	/**
99
-	 * Post row actions.
100
-	 */
101
-	public static function post_row_actions( $actions, $post ) {
102
-
103
-		$post = get_post( $post );
104
-
105
-		// We do not want to edit the default payment form.
106
-		if ( 'wpi_payment_form' == $post->post_type ) {
107
-
108
-			if ( $post->ID == wpinv_get_default_payment_form() ) {
109
-				unset( $actions['trash'] );
110
-				unset( $actions['inline hide-if-no-js'] );
111
-			}
112
-
113
-			$actions['duplicate'] = sprintf(
114
-				'<a href="%1$s">%2$s</a>',
115
-				esc_url(
116
-					wp_nonce_url(
117
-						add_query_arg(
118
-							array(
119
-								'getpaid-admin-action' => 'duplicate_form',
120
-								'form_id'              => $post->ID,
121
-							)
122
-						),
123
-						'getpaid-nonce',
124
-						'getpaid-nonce'
125
-					)
126
-				),
127
-				esc_html( __( 'Duplicate', 'invoicing' ) )
128
-			);
129
-
130
-		}
131
-
132
-		// Link to item payment form.
133
-		if ( 'wpi_item' == $post->post_type ) {
134
-
135
-			if ( in_array( get_post_meta( $post->ID, '_wpinv_type', true ), array( '', 'fee', 'custom' ) ) ) {
136
-
137
-				$actions['buy'] = sprintf(
138
-					'<a href="%1$s">%2$s</a>',
139
-					esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
140
-					esc_html( __( 'Buy', 'invoicing' ) )
141
-				);
142
-
143
-			}
16
+     * Hook in methods.
17
+     */
18
+    public static function init() {
19
+
20
+        // Init metaboxes.
21
+        GetPaid_Metaboxes::init();
22
+
23
+        // Filter the post updated messages.
24
+        add_filter( 'post_updated_messages', 'GetPaid_Post_Types_Admin::post_updated_messages' );
25
+
26
+        // Filter post actions.
27
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::post_row_actions', 10, 2 );
28
+        add_filter( 'post_row_actions', 'GetPaid_Post_Types_Admin::filter_invoice_row_actions', 90, 2 );
29
+
30
+        // Invoice table columns.
31
+        add_filter( 'manage_wpi_invoice_posts_columns', array( __CLASS__, 'invoice_columns' ), 100 );
32
+        add_action( 'manage_wpi_invoice_posts_custom_column', array( __CLASS__, 'display_invoice_columns' ), 10, 2 );
33
+        add_filter( 'bulk_actions-edit-wpi_invoice', array( __CLASS__, 'invoice_bulk_actions' ) );
34
+        add_filter( 'handle_bulk_actions-edit-wpi_invoice', array( __CLASS__, 'handle_invoice_bulk_actions' ), 10, 3 );
35
+
36
+        // Items table columns.
37
+        add_filter( 'manage_wpi_item_posts_columns', array( __CLASS__, 'item_columns' ), 100 );
38
+        add_filter( 'manage_edit-wpi_item_sortable_columns', array( __CLASS__, 'sortable_item_columns' ), 20 );
39
+        add_action( 'manage_wpi_item_posts_custom_column', array( __CLASS__, 'display_item_columns' ), 10, 2 );
40
+        add_action( 'restrict_manage_posts', array( __CLASS__, 'add_item_filters' ), 100 );
41
+        add_action( 'parse_query', array( __CLASS__, 'filter_item_query' ), 100 );
42
+        add_action( 'request', array( __CLASS__, 'reorder_items' ), 100 );
43
+
44
+        // Payment forms columns.
45
+        add_filter( 'manage_wpi_payment_form_posts_columns', array( __CLASS__, 'payment_form_columns' ), 100 );
46
+        add_action( 'manage_wpi_payment_form_posts_custom_column', array( __CLASS__, 'display_payment_form_columns' ), 10, 2 );
47
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_payment_form_state' ), 10, 2 );
48
+
49
+        // Discount table columns.
50
+        add_filter( 'manage_wpi_discount_posts_columns', array( __CLASS__, 'discount_columns' ), 100 );
51
+        add_filter( 'bulk_actions-edit-wpi_discount', '__return_empty_array', 100 );
52
+
53
+        // Deleting posts.
54
+        add_action( 'delete_post', array( __CLASS__, 'delete_post' ) );
55
+        add_filter( 'display_post_states', array( __CLASS__, 'filter_discount_state' ), 10, 2 );
56
+
57
+        add_filter( 'display_post_states', array( __CLASS__, 'add_display_post_states' ), 10, 2 );
58
+    }
59
+
60
+    /**
61
+     * Post updated messages.
62
+     */
63
+    public static function post_updated_messages( $messages ) {
64
+        global $post;
65
+
66
+        $messages['wpi_discount'] = array(
67
+            0  => '',
68
+            1  => __( 'Discount updated.', 'invoicing' ),
69
+            2  => __( 'Custom field updated.', 'invoicing' ),
70
+            3  => __( 'Custom field deleted.', 'invoicing' ),
71
+            4  => __( 'Discount updated.', 'invoicing' ),
72
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Discount restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
73
+            6  => __( 'Discount updated.', 'invoicing' ),
74
+            7  => __( 'Discount saved.', 'invoicing' ),
75
+            8  => __( 'Discount submitted.', 'invoicing' ),
76
+            9  => wp_sprintf( __( 'Discount scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
77
+            10 => __( 'Discount draft updated.', 'invoicing' ),
78
+        );
79
+
80
+        $messages['wpi_payment_form'] = array(
81
+            0  => '',
82
+            1  => __( 'Payment Form updated.', 'invoicing' ),
83
+            2  => __( 'Custom field updated.', 'invoicing' ),
84
+            3  => __( 'Custom field deleted.', 'invoicing' ),
85
+            4  => __( 'Payment Form updated.', 'invoicing' ),
86
+            5  => isset( $_GET['revision'] ) ? wp_sprintf( __( 'Payment Form restored to revision from %s', 'invoicing' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
87
+            6  => __( 'Payment Form updated.', 'invoicing' ),
88
+            7  => __( 'Payment Form saved.', 'invoicing' ),
89
+            8  => __( 'Payment Form submitted.', 'invoicing' ),
90
+            9  => wp_sprintf( __( 'Payment Form scheduled for: <strong>%1$s</strong>.', 'invoicing' ), date_i18n( __( 'M j, Y @ G:i', 'invoicing' ), strtotime( $post->post_date ) ) ),
91
+            10 => __( 'Payment Form draft updated.', 'invoicing' ),
92
+        );
93
+
94
+        return $messages;
95
+
96
+    }
97
+
98
+    /**
99
+     * Post row actions.
100
+     */
101
+    public static function post_row_actions( $actions, $post ) {
102
+
103
+        $post = get_post( $post );
104
+
105
+        // We do not want to edit the default payment form.
106
+        if ( 'wpi_payment_form' == $post->post_type ) {
107
+
108
+            if ( $post->ID == wpinv_get_default_payment_form() ) {
109
+                unset( $actions['trash'] );
110
+                unset( $actions['inline hide-if-no-js'] );
111
+            }
112
+
113
+            $actions['duplicate'] = sprintf(
114
+                '<a href="%1$s">%2$s</a>',
115
+                esc_url(
116
+                    wp_nonce_url(
117
+                        add_query_arg(
118
+                            array(
119
+                                'getpaid-admin-action' => 'duplicate_form',
120
+                                'form_id'              => $post->ID,
121
+                            )
122
+                        ),
123
+                        'getpaid-nonce',
124
+                        'getpaid-nonce'
125
+                    )
126
+                ),
127
+                esc_html( __( 'Duplicate', 'invoicing' ) )
128
+            );
129
+
130
+        }
131
+
132
+        // Link to item payment form.
133
+        if ( 'wpi_item' == $post->post_type ) {
134
+
135
+            if ( in_array( get_post_meta( $post->ID, '_wpinv_type', true ), array( '', 'fee', 'custom' ) ) ) {
136
+
137
+                $actions['buy'] = sprintf(
138
+                    '<a href="%1$s">%2$s</a>',
139
+                    esc_url( getpaid_embed_url( false, $post->ID . '|0' ) ),
140
+                    esc_html( __( 'Buy', 'invoicing' ) )
141
+                );
142
+
143
+            }
144 144
 }
145 145
 
146
-		return $actions;
147
-	}
146
+        return $actions;
147
+    }
148 148
 
149
-	/**
149
+    /**
150 150
      * Remove bulk edit option from admin side quote listing
151 151
      *
152 152
      * @since    1.0.0
153 153
      * @param array $actions post actions
154
-	 * @param WP_Post $post
154
+     * @param WP_Post $post
155 155
      * @return array $actions actions without edit option
156 156
      */
157 157
     public static function filter_invoice_row_actions( $actions, $post ) {
158 158
 
159 159
         if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
160 160
 
161
-			$actions = array();
162
-			$invoice = new WPInv_Invoice( $post );
163
-
164
-			$actions['edit'] = sprintf(
165
-				'<a href="%1$s">%2$s</a>',
166
-				esc_url( get_edit_post_link( $invoice->get_id() ) ),
167
-				esc_html( __( 'Edit', 'invoicing' ) )
168
-			);
169
-
170
-			if ( ! $invoice->is_draft() ) {
171
-
172
-				$actions['view'] = sprintf(
173
-					'<a href="%1$s">%2$s</a>',
174
-					esc_url( $invoice->get_view_url() ),
175
-					sprintf(
176
-						esc_html( __( 'View %s', 'invoicing' ) ),
177
-						getpaid_get_post_type_label( $invoice->get_post_type(), false )
178
-					)
179
-				);
180
-
181
-				$actions['send'] = sprintf(
182
-					'<a href="%1$s">%2$s</a>',
183
-					esc_url(
184
-						wp_nonce_url(
185
-							add_query_arg(
186
-								array(
187
-									'getpaid-admin-action' => 'send_invoice',
188
-									'invoice_id'           => $invoice->get_id(),
189
-								)
190
-							),
191
-							'getpaid-nonce',
192
-							'getpaid-nonce'
193
-						)
194
-					),
195
-					esc_html( __( 'Send to Customer', 'invoicing' ) )
196
-				);
197
-
198
-			}
199
-
200
-			$actions['duplicate'] = sprintf(
201
-				'<a href="%1$s">%2$s</a>',
202
-				esc_url(
203
-					wp_nonce_url(
204
-						add_query_arg(
205
-							array(
206
-								'getpaid-admin-action' => 'duplicate_invoice',
207
-								'invoice_id'           => $post->ID,
208
-							)
209
-						),
210
-						'getpaid-nonce',
211
-						'getpaid-nonce'
212
-					)
213
-				),
214
-				esc_html( __( 'Duplicate', 'invoicing' ) )
215
-			);
161
+            $actions = array();
162
+            $invoice = new WPInv_Invoice( $post );
163
+
164
+            $actions['edit'] = sprintf(
165
+                '<a href="%1$s">%2$s</a>',
166
+                esc_url( get_edit_post_link( $invoice->get_id() ) ),
167
+                esc_html( __( 'Edit', 'invoicing' ) )
168
+            );
169
+
170
+            if ( ! $invoice->is_draft() ) {
171
+
172
+                $actions['view'] = sprintf(
173
+                    '<a href="%1$s">%2$s</a>',
174
+                    esc_url( $invoice->get_view_url() ),
175
+                    sprintf(
176
+                        esc_html( __( 'View %s', 'invoicing' ) ),
177
+                        getpaid_get_post_type_label( $invoice->get_post_type(), false )
178
+                    )
179
+                );
180
+
181
+                $actions['send'] = sprintf(
182
+                    '<a href="%1$s">%2$s</a>',
183
+                    esc_url(
184
+                        wp_nonce_url(
185
+                            add_query_arg(
186
+                                array(
187
+                                    'getpaid-admin-action' => 'send_invoice',
188
+                                    'invoice_id'           => $invoice->get_id(),
189
+                                )
190
+                            ),
191
+                            'getpaid-nonce',
192
+                            'getpaid-nonce'
193
+                        )
194
+                    ),
195
+                    esc_html( __( 'Send to Customer', 'invoicing' ) )
196
+                );
197
+
198
+            }
199
+
200
+            $actions['duplicate'] = sprintf(
201
+                '<a href="%1$s">%2$s</a>',
202
+                esc_url(
203
+                    wp_nonce_url(
204
+                        add_query_arg(
205
+                            array(
206
+                                'getpaid-admin-action' => 'duplicate_invoice',
207
+                                'invoice_id'           => $post->ID,
208
+                            )
209
+                        ),
210
+                        'getpaid-nonce',
211
+                        'getpaid-nonce'
212
+                    )
213
+                ),
214
+                esc_html( __( 'Duplicate', 'invoicing' ) )
215
+            );
216 216
 
217 217
         }
218 218
 
219 219
         return $actions;
220
-	}
221
-
222
-	/**
223
-	 * Returns an array of invoice table columns.
224
-	 */
225
-	public static function invoice_columns( $columns ) {
226
-
227
-		$columns = array(
228
-			'cb'           => $columns['cb'],
229
-			'number'       => __( 'Invoice', 'invoicing' ),
230
-			'customer'     => __( 'Customer', 'invoicing' ),
231
-			'invoice_date' => __( 'Created', 'invoicing' ),
232
-			'payment_date' => __( 'Completed', 'invoicing' ),
233
-			'amount'       => __( 'Amount', 'invoicing' ),
234
-			'recurring'    => __( 'Recurring', 'invoicing' ),
235
-			'status'       => __( 'Status', 'invoicing' ),
236
-		);
237
-
238
-		return apply_filters( 'wpi_invoice_table_columns', $columns );
239
-	}
240
-
241
-	/**
242
-	 * Displays invoice table columns.
243
-	 */
244
-	public static function display_invoice_columns( $column_name, $post_id ) {
245
-
246
-		$invoice = new WPInv_Invoice( $post_id );
247
-
248
-		switch ( $column_name ) {
249
-
250
-			case 'invoice_date':
251
-				$date_time = esc_attr( $invoice->get_created_date() );
252
-				$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
253
-				echo wp_kses_post( "<span title='$date_time'>$date</span>" );
254
-				break;
255
-
256
-			case 'payment_date':
257
-				if ( $invoice->is_paid() ) {
258
-					$date_time = esc_attr( $invoice->get_completed_date() );
259
-					$date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
260
-					echo wp_kses_post( "<span title='$date_time'>$date</span>" );
261
-				} else {
262
-					echo '&mdash;';
263
-				}
264
-
265
-				break;
266
-
267
-			case 'amount':
268
-				$amount = $invoice->get_total();
269
-				$formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
270
-
271
-				if ( $invoice->is_refunded() ) {
272
-					$refunded_amount = wpinv_price( 0, $invoice->get_currency() );
273
-					echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
274
-				} else {
275
-
276
-					$discount = $invoice->get_total_discount();
277
-
278
-					if ( ! empty( $discount ) ) {
279
-						$new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
280
-						echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
281
-					} else {
282
-						echo wp_kses_post( $formated_amount );
283
-					}
220
+    }
221
+
222
+    /**
223
+     * Returns an array of invoice table columns.
224
+     */
225
+    public static function invoice_columns( $columns ) {
226
+
227
+        $columns = array(
228
+            'cb'           => $columns['cb'],
229
+            'number'       => __( 'Invoice', 'invoicing' ),
230
+            'customer'     => __( 'Customer', 'invoicing' ),
231
+            'invoice_date' => __( 'Created', 'invoicing' ),
232
+            'payment_date' => __( 'Completed', 'invoicing' ),
233
+            'amount'       => __( 'Amount', 'invoicing' ),
234
+            'recurring'    => __( 'Recurring', 'invoicing' ),
235
+            'status'       => __( 'Status', 'invoicing' ),
236
+        );
237
+
238
+        return apply_filters( 'wpi_invoice_table_columns', $columns );
239
+    }
240
+
241
+    /**
242
+     * Displays invoice table columns.
243
+     */
244
+    public static function display_invoice_columns( $column_name, $post_id ) {
245
+
246
+        $invoice = new WPInv_Invoice( $post_id );
247
+
248
+        switch ( $column_name ) {
249
+
250
+            case 'invoice_date':
251
+                $date_time = esc_attr( $invoice->get_created_date() );
252
+                $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
253
+                echo wp_kses_post( "<span title='$date_time'>$date</span>" );
254
+                break;
255
+
256
+            case 'payment_date':
257
+                if ( $invoice->is_paid() ) {
258
+                    $date_time = esc_attr( $invoice->get_completed_date() );
259
+                    $date      = esc_html( getpaid_format_date_value( $date_time, '&mdash;', true ) );
260
+                    echo wp_kses_post( "<span title='$date_time'>$date</span>" );
261
+                } else {
262
+                    echo '&mdash;';
263
+                }
264
+
265
+                break;
266
+
267
+            case 'amount':
268
+                $amount = $invoice->get_total();
269
+                $formated_amount = wp_kses_post( wpinv_price( $amount, $invoice->get_currency() ) );
270
+
271
+                if ( $invoice->is_refunded() ) {
272
+                    $refunded_amount = wpinv_price( 0, $invoice->get_currency() );
273
+                    echo wp_kses_post( "<del>$formated_amount</del>&nbsp;<ins>$refunded_amount</ins>" );
274
+                } else {
275
+
276
+                    $discount = $invoice->get_total_discount();
277
+
278
+                    if ( ! empty( $discount ) ) {
279
+                        $new_amount = wpinv_price( $amount + $discount, $invoice->get_currency() );
280
+                        echo wp_kses_post( "<del>$new_amount</del>&nbsp;<ins>$formated_amount</ins>" );
281
+                    } else {
282
+                        echo wp_kses_post( $formated_amount );
283
+                    }
284 284
 }
285 285
 
286
-				break;
287
-
288
-			case 'status':
289
-				$status       = esc_html( $invoice->get_status() );
290
-				$status_label = esc_html( $invoice->get_status_nicename() );
291
-
292
-				// If it is paid, show the gateway title.
293
-				if ( $invoice->is_paid() ) {
294
-					$gateway = esc_html( $invoice->get_gateway_title() );
295
-					$gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
296
-
297
-					echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
298
-				} else {
299
-					echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
300
-				}
301
-
302
-				// If it is not paid, display the overdue and view status.
303
-				if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
304
-
305
-					// Invoice view status.
306
-					if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
307
-						echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
308
-					} else {
309
-						echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
310
-					}
311
-
312
-					// Display the overview status.
313
-					if ( wpinv_get_option( 'overdue_active' ) ) {
314
-						$due_date = $invoice->get_due_date();
315
-						$fomatted = getpaid_format_date( $due_date );
316
-
317
-						if ( ! empty( $fomatted ) ) {
318
-							$date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted );
319
-							echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
320
-						}
321
-					}
286
+                break;
287
+
288
+            case 'status':
289
+                $status       = esc_html( $invoice->get_status() );
290
+                $status_label = esc_html( $invoice->get_status_nicename() );
291
+
292
+                // If it is paid, show the gateway title.
293
+                if ( $invoice->is_paid() ) {
294
+                    $gateway = esc_html( $invoice->get_gateway_title() );
295
+                    $gateway = wp_sprintf( esc_attr__( 'Paid via %s', 'invoicing' ), esc_html( $gateway ) );
296
+
297
+                    echo wp_kses_post( "<mark class='wpi-help-tip getpaid-invoice-status $status' title='$gateway'><span>$status_label</span></mark>" );
298
+                } else {
299
+                    echo wp_kses_post( "<mark class='getpaid-invoice-status $status'><span>$status_label</span></mark>" );
300
+                }
301
+
302
+                // If it is not paid, display the overdue and view status.
303
+                if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
304
+
305
+                    // Invoice view status.
306
+                    if ( wpinv_is_invoice_viewed( $invoice->get_id() ) ) {
307
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye wpi-help-tip" title="' . esc_attr__( 'Viewed by Customer', 'invoicing' ) . '"></i>';
308
+                    } else {
309
+                        echo '&nbsp;&nbsp;<i class="fa fa-eye-slash wpi-help-tip" title="' . esc_attr__( 'Not Viewed by Customer', 'invoicing' ) . '"></i>';
310
+                    }
311
+
312
+                    // Display the overview status.
313
+                    if ( wpinv_get_option( 'overdue_active' ) ) {
314
+                        $due_date = $invoice->get_due_date();
315
+                        $fomatted = getpaid_format_date( $due_date );
316
+
317
+                        if ( ! empty( $fomatted ) ) {
318
+                            $date = wp_sprintf( __( 'Due %s', 'invoicing' ), $fomatted );
319
+                            echo wp_kses_post( "<p class='description' style='color: #888;' title='$due_date'>$fomatted</p>" );
320
+                        }
321
+                    }
322 322
 }
323 323
 
324
-				break;
324
+                break;
325 325
 
326
-			case 'recurring':
327
-				if ( $invoice->is_recurring() ) {
328
-					echo '<i class="fa fa-check" style="color:#43850a;"></i>';
329
-				} else {
330
-					echo '<i class="fa fa-times" style="color:#616161;"></i>';
331
-				}
332
-				break;
326
+            case 'recurring':
327
+                if ( $invoice->is_recurring() ) {
328
+                    echo '<i class="fa fa-check" style="color:#43850a;"></i>';
329
+                } else {
330
+                    echo '<i class="fa fa-times" style="color:#616161;"></i>';
331
+                }
332
+                break;
333 333
 
334
-			case 'number':
335
-				$edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
336
-				$invoice_number  = esc_html( $invoice->get_number() );
337
-				$invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
334
+            case 'number':
335
+                $edit_link       = esc_url( get_edit_post_link( $invoice->get_id() ) );
336
+                $invoice_number  = esc_html( $invoice->get_number() );
337
+                $invoice_details = esc_attr__( 'View Invoice Details', 'invoicing' );
338 338
 
339
-				echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
339
+                echo wp_kses_post( "<a href='$edit_link' title='$invoice_details'><strong>$invoice_number</strong></a>" );
340 340
 
341
-				break;
341
+                break;
342 342
 
343
-			case 'customer':
344
-				$customer_name = $invoice->get_user_full_name();
343
+            case 'customer':
344
+                $customer_name = $invoice->get_user_full_name();
345 345
 
346
-				if ( empty( $customer_name ) ) {
347
-					$customer_name = $invoice->get_email();
348
-				}
346
+                if ( empty( $customer_name ) ) {
347
+                    $customer_name = $invoice->get_email();
348
+                }
349 349
 
350
-				if ( ! empty( $customer_name ) ) {
351
-					$customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
352
-					$view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
353
-					echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
354
-				} else {
355
-					echo '<div>&mdash;</div>';
356
-				}
350
+                if ( ! empty( $customer_name ) ) {
351
+                    $customer_details = esc_attr__( 'View Customer Details', 'invoicing' );
352
+                    $view_link        = esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), admin_url( 'user-edit.php' ) ) );
353
+                    echo wp_kses_post( "<a href='$view_link' title='$customer_details'><span>$customer_name</span></a>" );
354
+                } else {
355
+                    echo '<div>&mdash;</div>';
356
+                }
357 357
 
358
-				break;
359
-
360
-		}
361
-
362
-	}
363
-
364
-	/**
365
-	 * Displays invoice bulk actions.
366
-	 */
367
-	public static function invoice_bulk_actions( $actions ) {
368
-		$actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
369
-		return $actions;
370
-	}
371
-
372
-	/**
373
-	 * Processes invoice bulk actions.
374
-	 */
375
-	public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
376
-
377
-		if ( $action == 'resend-invoice' ) {
378
-			foreach ( $post_ids as $post_id ) {
379
-				getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
380
-			}
381
-		}
382
-
383
-		return $redirect_url;
384
-
385
-	}
386
-
387
-	/**
388
-	 * Returns an array of payment forms table columns.
389
-	 */
390
-	public static function payment_form_columns( $columns ) {
391
-
392
-		$columns = array(
393
-			'cb'        => $columns['cb'],
394
-			'title'     => __( 'Name', 'invoicing' ),
395
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
396
-			'earnings'  => __( 'Revenue', 'invoicing' ),
397
-			'refunds'   => __( 'Refunded', 'invoicing' ),
398
-			'items'     => __( 'Items', 'invoicing' ),
399
-			'date'      => __( 'Date', 'invoicing' ),
400
-		);
401
-
402
-		return apply_filters( 'wpi_payment_form_table_columns', $columns );
403
-
404
-	}
405
-
406
-	/**
407
-	 * Displays payment form table columns.
408
-	 */
409
-	public static function display_payment_form_columns( $column_name, $post_id ) {
410
-
411
-		// Retrieve the payment form.
412
-		$form = new GetPaid_Payment_Form( $post_id );
413
-
414
-		switch ( $column_name ) {
415
-
416
-			case 'earnings':
417
-				echo wp_kses_post( wpinv_price( $form->get_earned() ) );
418
-				break;
419
-
420
-			case 'refunds':
421
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
422
-				break;
423
-
424
-			case 'refunds':
425
-				echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
426
-				break;
427
-
428
-			case 'shortcode':
429
-				if ( $form->is_default() ) {
430
-					echo '&mdash;';
431
-				} else {
432
-					echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
433
-				}
434
-
435
-				break;
358
+                break;
436 359
 
437
-			case 'items':
438
-				$items = $form->get_items();
439
-
440
-				if ( $form->is_default() || empty( $items ) ) {
441
-					echo '&mdash;';
442
-					return;
443
-				}
444
-
445
-				$_items = array();
446
-
447
-				foreach ( $items as $item ) {
448
-					$url = $item->get_edit_url();
449
-
450
-					if ( empty( $url ) ) {
451
-						$_items[] = esc_html( $item->get_name() );
452
-					} else {
453
-						$_items[] = sprintf(
454
-							'<a href="%s">%s</a>',
455
-							esc_url( $url ),
456
-							esc_html( $item->get_name() )
457
-						);
458
-					}
360
+        }
361
+
362
+    }
363
+
364
+    /**
365
+     * Displays invoice bulk actions.
366
+     */
367
+    public static function invoice_bulk_actions( $actions ) {
368
+        $actions['resend-invoice'] = __( 'Send to Customer', 'invoicing' );
369
+        return $actions;
370
+    }
371
+
372
+    /**
373
+     * Processes invoice bulk actions.
374
+     */
375
+    public static function handle_invoice_bulk_actions( $redirect_url, $action, $post_ids ) {
376
+
377
+        if ( $action == 'resend-invoice' ) {
378
+            foreach ( $post_ids as $post_id ) {
379
+                getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $post_id ), true );
380
+            }
381
+        }
382
+
383
+        return $redirect_url;
384
+
385
+    }
386
+
387
+    /**
388
+     * Returns an array of payment forms table columns.
389
+     */
390
+    public static function payment_form_columns( $columns ) {
391
+
392
+        $columns = array(
393
+            'cb'        => $columns['cb'],
394
+            'title'     => __( 'Name', 'invoicing' ),
395
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
396
+            'earnings'  => __( 'Revenue', 'invoicing' ),
397
+            'refunds'   => __( 'Refunded', 'invoicing' ),
398
+            'items'     => __( 'Items', 'invoicing' ),
399
+            'date'      => __( 'Date', 'invoicing' ),
400
+        );
401
+
402
+        return apply_filters( 'wpi_payment_form_table_columns', $columns );
403
+
404
+    }
405
+
406
+    /**
407
+     * Displays payment form table columns.
408
+     */
409
+    public static function display_payment_form_columns( $column_name, $post_id ) {
410
+
411
+        // Retrieve the payment form.
412
+        $form = new GetPaid_Payment_Form( $post_id );
413
+
414
+        switch ( $column_name ) {
415
+
416
+            case 'earnings':
417
+                echo wp_kses_post( wpinv_price( $form->get_earned() ) );
418
+                break;
419
+
420
+            case 'refunds':
421
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
422
+                break;
423
+
424
+            case 'refunds':
425
+                echo wp_kses_post( wpinv_price( $form->get_refunded() ) );
426
+                break;
427
+
428
+            case 'shortcode':
429
+                if ( $form->is_default() ) {
430
+                    echo '&mdash;';
431
+                } else {
432
+                    echo '<input onClick="this.select()" type="text" value="[getpaid form=' . esc_attr( $form->get_id() ) . ']" style="width: 100%;" readonly/>';
433
+                }
434
+
435
+                break;
436
+
437
+            case 'items':
438
+                $items = $form->get_items();
439
+
440
+                if ( $form->is_default() || empty( $items ) ) {
441
+                    echo '&mdash;';
442
+                    return;
443
+                }
444
+
445
+                $_items = array();
446
+
447
+                foreach ( $items as $item ) {
448
+                    $url = $item->get_edit_url();
449
+
450
+                    if ( empty( $url ) ) {
451
+                        $_items[] = esc_html( $item->get_name() );
452
+                    } else {
453
+                        $_items[] = sprintf(
454
+                            '<a href="%s">%s</a>',
455
+                            esc_url( $url ),
456
+                            esc_html( $item->get_name() )
457
+                        );
458
+                    }
459 459
 }
460 460
 
461
-				echo wp_kses_post( implode( '<br>', $_items ) );
461
+                echo wp_kses_post( implode( '<br>', $_items ) );
462 462
 
463
-				break;
463
+                break;
464 464
 
465
-		}
465
+        }
466 466
 
467
-	}
467
+    }
468 468
 
469
-	/**
470
-	 * Filters post states.
471
-	 */
472
-	public static function filter_payment_form_state( $post_states, $post ) {
469
+    /**
470
+     * Filters post states.
471
+     */
472
+    public static function filter_payment_form_state( $post_states, $post ) {
473 473
 
474
-		if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) {
475
-			$post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
476
-		}
474
+        if ( 'wpi_payment_form' == $post->post_type && wpinv_get_default_payment_form() == $post->ID ) {
475
+            $post_states['default_form'] = __( 'Default Payment Form', 'invoicing' );
476
+        }
477 477
 
478
-		return $post_states;
478
+        return $post_states;
479 479
 
480
-	}
480
+    }
481 481
 
482
-	/**
483
-	 * Returns an array of coupon table columns.
484
-	 */
485
-	public static function discount_columns( $columns ) {
482
+    /**
483
+     * Returns an array of coupon table columns.
484
+     */
485
+    public static function discount_columns( $columns ) {
486
+
487
+        $columns = array(
488
+            'cb'          => $columns['cb'],
489
+            'title'       => __( 'Name', 'invoicing' ),
490
+            'code'        => __( 'Code', 'invoicing' ),
491
+            'amount'      => __( 'Amount', 'invoicing' ),
492
+            'usage'       => __( 'Usage / Limit', 'invoicing' ),
493
+            'start_date'  => __( 'Start Date', 'invoicing' ),
494
+            'expiry_date' => __( 'Expiry Date', 'invoicing' ),
495
+        );
496
+
497
+        return apply_filters( 'wpi_discount_table_columns', $columns );
498
+    }
486 499
 
487
-		$columns = array(
488
-			'cb'          => $columns['cb'],
489
-			'title'       => __( 'Name', 'invoicing' ),
490
-			'code'        => __( 'Code', 'invoicing' ),
491
-			'amount'      => __( 'Amount', 'invoicing' ),
492
-			'usage'       => __( 'Usage / Limit', 'invoicing' ),
493
-			'start_date'  => __( 'Start Date', 'invoicing' ),
494
-			'expiry_date' => __( 'Expiry Date', 'invoicing' ),
495
-		);
500
+    /**
501
+     * Filters post states.
502
+     */
503
+    public static function filter_discount_state( $post_states, $post ) {
496 504
 
497
-		return apply_filters( 'wpi_discount_table_columns', $columns );
498
-	}
505
+        if ( 'wpi_discount' == $post->post_type ) {
499 506
 
500
-	/**
501
-	 * Filters post states.
502
-	 */
503
-	public static function filter_discount_state( $post_states, $post ) {
507
+            $discount = new WPInv_Discount( $post );
504 508
 
505
-		if ( 'wpi_discount' == $post->post_type ) {
509
+            $status = $discount->is_expired() ? 'expired' : $discount->get_status();
506 510
 
507
-			$discount = new WPInv_Discount( $post );
511
+            if ( $status != 'publish' ) {
512
+                return array(
513
+                    'discount_status' => wpinv_discount_status( $status ),
514
+                );
515
+            }
508 516
 
509
-			$status = $discount->is_expired() ? 'expired' : $discount->get_status();
517
+            return array();
510 518
 
511
-			if ( $status != 'publish' ) {
512
-				return array(
513
-					'discount_status' => wpinv_discount_status( $status ),
514
-				);
515
-			}
519
+        }
516 520
 
517
-			return array();
521
+        return $post_states;
518 522
 
519
-		}
523
+    }
520 524
 
521
-		return $post_states;
525
+    /**
526
+     * Returns an array of items table columns.
527
+     */
528
+    public static function item_columns( $columns ) {
529
+
530
+        $columns = array(
531
+            'cb'        => $columns['cb'],
532
+            'title'     => __( 'Name', 'invoicing' ),
533
+            'price'     => __( 'Price', 'invoicing' ),
534
+            'vat_rule'  => __( 'VAT rule', 'invoicing' ),
535
+            'vat_class' => __( 'VAT class', 'invoicing' ),
536
+            'type'      => __( 'Type', 'invoicing' ),
537
+            'shortcode' => __( 'Shortcode', 'invoicing' ),
538
+        );
539
+
540
+        if ( ! wpinv_use_taxes() ) {
541
+            unset( $columns['vat_rule'] );
542
+            unset( $columns['vat_class'] );
543
+        }
544
+
545
+        return apply_filters( 'wpi_item_table_columns', $columns );
546
+    }
547
+
548
+    /**
549
+     * Returns an array of sortable items table columns.
550
+     */
551
+    public static function sortable_item_columns( $columns ) {
552
+
553
+        return array_merge(
554
+            $columns,
555
+            array(
556
+                'price'     => 'price',
557
+                'vat_rule'  => 'vat_rule',
558
+                'vat_class' => 'vat_class',
559
+                'type'      => 'type',
560
+            )
561
+        );
562
+
563
+    }
564
+
565
+    /**
566
+     * Displays items table columns.
567
+     */
568
+    public static function display_item_columns( $column_name, $post_id ) {
569
+
570
+        $item = new WPInv_Item( $post_id );
571
+
572
+        switch ( $column_name ) {
573
+
574
+            case 'price':
575
+                if ( ! $item->is_recurring() ) {
576
+                    echo wp_kses_post( $item->get_the_price() );
577
+                    break;
578
+                }
579
+
580
+                $price = wp_sprintf(
581
+                    __( '%1$s / %2$s', 'invoicing' ),
582
+                    $item->get_the_price(),
583
+                    getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
584
+                );
585
+
586
+                if ( $item->get_the_price() == $item->get_the_initial_price() ) {
587
+                    echo wp_kses_post( $price );
588
+                    break;
589
+                }
590
+
591
+                echo wp_kses_post( $item->get_the_initial_price() );
592
+
593
+                echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
594
+                break;
595
+
596
+            case 'vat_rule':
597
+                echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
598
+                break;
599
+
600
+            case 'vat_class':
601
+                echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
602
+                break;
603
+
604
+            case 'shortcode':
605
+                if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
606
+                    echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
607
+                } else {
608
+                    echo '&mdash;';
609
+                }
610
+
611
+                break;
612
+
613
+            case 'type':
614
+                echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
615
+                break;
616
+
617
+        }
618
+
619
+    }
620
+
621
+    /**
622
+     * Lets users filter items using taxes.
623
+     */
624
+    public static function add_item_filters( $post_type ) {
625
+
626
+        // Abort if we're not dealing with items.
627
+        if ( $post_type != 'wpi_item' ) {
628
+            return;
629
+        }
630
+
631
+        // Filter by vat rules.
632
+        if ( wpinv_use_taxes() ) {
633
+
634
+            // Sanitize selected vat rule.
635
+            $vat_rule   = '';
636
+            $vat_rules  = getpaid_get_tax_rules();
637
+            if ( isset( $_GET['vat_rule'] ) ) {
638
+                $vat_rule   = sanitize_text_field( $_GET['vat_rule'] );
639
+            }
640
+
641
+            // Filter by VAT rule.
642
+            wpinv_html_select(
643
+                array(
644
+                    'options'          => array_merge(
645
+                        array(
646
+                            '' => __( 'All VAT rules', 'invoicing' ),
647
+                        ),
648
+                        $vat_rules
649
+                    ),
650
+                    'name'             => 'vat_rule',
651
+                    'id'               => 'vat_rule',
652
+                    'selected'         => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '',
653
+                    'show_option_all'  => false,
654
+                    'show_option_none' => false,
655
+                )
656
+            );
657
+
658
+            // Filter by VAT class.
659
+
660
+            // Sanitize selected vat rule.
661
+            $vat_class   = '';
662
+            $vat_classes = getpaid_get_tax_classes();
663
+            if ( isset( $_GET['vat_class'] ) ) {
664
+                $vat_class   = sanitize_text_field( $_GET['vat_class'] );
665
+            }
666
+
667
+            wpinv_html_select(
668
+                array(
669
+                    'options'          => array_merge(
670
+                        array(
671
+                            '' => __( 'All VAT classes', 'invoicing' ),
672
+                        ),
673
+                        $vat_classes
674
+                    ),
675
+                    'name'             => 'vat_class',
676
+                    'id'               => 'vat_class',
677
+                    'selected'         => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '',
678
+                    'show_option_all'  => false,
679
+                    'show_option_none' => false,
680
+                )
681
+            );
682
+
683
+        }
684
+
685
+        // Filter by item type.
686
+        $type   = '';
687
+        if ( isset( $_GET['type'] ) ) {
688
+            $type   = sanitize_text_field( $_GET['type'] );
689
+        }
522 690
 
523
-	}
691
+        wpinv_html_select(
692
+            array(
693
+                'options'          => array_merge(
694
+                    array(
695
+                        '' => __( 'All item types', 'invoicing' ),
696
+                    ),
697
+                    wpinv_get_item_types()
698
+                ),
699
+                'name'             => 'type',
700
+                'id'               => 'type',
701
+                'selected'         => in_array( $type, wpinv_item_types() ) ? $type : '',
702
+                'show_option_all'  => false,
703
+                'show_option_none' => false,
704
+            )
705
+        );
524 706
 
525
-	/**
526
-	 * Returns an array of items table columns.
527
-	 */
528
-	public static function item_columns( $columns ) {
707
+    }
529 708
 
530
-		$columns = array(
531
-			'cb'        => $columns['cb'],
532
-			'title'     => __( 'Name', 'invoicing' ),
533
-			'price'     => __( 'Price', 'invoicing' ),
534
-			'vat_rule'  => __( 'VAT rule', 'invoicing' ),
535
-			'vat_class' => __( 'VAT class', 'invoicing' ),
536
-			'type'      => __( 'Type', 'invoicing' ),
537
-			'shortcode' => __( 'Shortcode', 'invoicing' ),
538
-		);
709
+    /**
710
+     * Filters the item query.
711
+     */
712
+    public static function filter_item_query( $query ) {
539 713
 
540
-		if ( ! wpinv_use_taxes() ) {
541
-			unset( $columns['vat_rule'] );
542
-			unset( $columns['vat_class'] );
543
-		}
714
+        // modify the query only if it admin and main query.
715
+        if ( ! ( is_admin() && $query->is_main_query() ) ) {
716
+            return $query;
717
+        }
544 718
 
545
-		return apply_filters( 'wpi_item_table_columns', $columns );
546
-	}
719
+        // we want to modify the query for our items.
720
+        if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ) {
721
+            return $query;
722
+        }
547 723
 
548
-	/**
549
-	 * Returns an array of sortable items table columns.
550
-	 */
551
-	public static function sortable_item_columns( $columns ) {
552
-
553
-		return array_merge(
554
-			$columns,
555
-			array(
556
-				'price'     => 'price',
557
-				'vat_rule'  => 'vat_rule',
558
-				'vat_class' => 'vat_class',
559
-				'type'      => 'type',
560
-			)
561
-		);
562
-
563
-	}
564
-
565
-	/**
566
-	 * Displays items table columns.
567
-	 */
568
-	public static function display_item_columns( $column_name, $post_id ) {
569
-
570
-		$item = new WPInv_Item( $post_id );
571
-
572
-		switch ( $column_name ) {
573
-
574
-			case 'price':
575
-				if ( ! $item->is_recurring() ) {
576
-					echo wp_kses_post( $item->get_the_price() );
577
-					break;
578
-				}
579
-
580
-				$price = wp_sprintf(
581
-					__( '%1$s / %2$s', 'invoicing' ),
582
-					$item->get_the_price(),
583
-					getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' )
584
-				);
585
-
586
-				if ( $item->get_the_price() == $item->get_the_initial_price() ) {
587
-					echo wp_kses_post( $price );
588
-					break;
589
-				}
590
-
591
-				echo wp_kses_post( $item->get_the_initial_price() );
592
-
593
-				echo '<span class="meta">' . wp_sprintf( esc_html__( 'then %s', 'invoicing' ), wp_kses_post( $price ) ) . '</span>';
594
-				break;
595
-
596
-			case 'vat_rule':
597
-				echo wp_kses_post( getpaid_get_tax_rule_label( $item->get_vat_rule() ) );
598
-				break;
599
-
600
-			case 'vat_class':
601
-				echo wp_kses_post( getpaid_get_tax_class_label( $item->get_vat_class() ) );
602
-				break;
603
-
604
-			case 'shortcode':
605
-				if ( $item->is_type( array( '', 'fee', 'custom' ) ) ) {
606
-					echo '<input onClick="this.select()" type="text" value="[getpaid item=' . esc_attr( $item->get_id() ) . ' button=\'Buy Now\']" style="width: 100%;" readonly/>';
607
-				} else {
608
-					echo '&mdash;';
609
-				}
610
-
611
-				break;
612
-
613
-			case 'type':
614
-				echo wp_kses_post( wpinv_item_type( $item->get_id() ) . '<span class="meta">' . $item->get_custom_singular_name() . '</span>' );
615
-				break;
616
-
617
-		}
618
-
619
-	}
620
-
621
-	/**
622
-	 * Lets users filter items using taxes.
623
-	 */
624
-	public static function add_item_filters( $post_type ) {
625
-
626
-		// Abort if we're not dealing with items.
627
-		if ( $post_type != 'wpi_item' ) {
628
-			return;
629
-		}
630
-
631
-		// Filter by vat rules.
632
-		if ( wpinv_use_taxes() ) {
633
-
634
-			// Sanitize selected vat rule.
635
-			$vat_rule   = '';
636
-			$vat_rules  = getpaid_get_tax_rules();
637
-			if ( isset( $_GET['vat_rule'] ) ) {
638
-				$vat_rule   = sanitize_text_field( $_GET['vat_rule'] );
639
-			}
640
-
641
-			// Filter by VAT rule.
642
-			wpinv_html_select(
643
-				array(
644
-					'options'          => array_merge(
645
-						array(
646
-							'' => __( 'All VAT rules', 'invoicing' ),
647
-						),
648
-						$vat_rules
649
-					),
650
-					'name'             => 'vat_rule',
651
-					'id'               => 'vat_rule',
652
-					'selected'         => in_array( $vat_rule, array_keys( $vat_rules ) ) ? $vat_rule : '',
653
-					'show_option_all'  => false,
654
-					'show_option_none' => false,
655
-				)
656
-			);
657
-
658
-			// Filter by VAT class.
659
-
660
-			// Sanitize selected vat rule.
661
-			$vat_class   = '';
662
-			$vat_classes = getpaid_get_tax_classes();
663
-			if ( isset( $_GET['vat_class'] ) ) {
664
-				$vat_class   = sanitize_text_field( $_GET['vat_class'] );
665
-			}
666
-
667
-			wpinv_html_select(
668
-				array(
669
-					'options'          => array_merge(
670
-						array(
671
-							'' => __( 'All VAT classes', 'invoicing' ),
672
-						),
673
-						$vat_classes
674
-					),
675
-					'name'             => 'vat_class',
676
-					'id'               => 'vat_class',
677
-					'selected'         => in_array( $vat_class, array_keys( $vat_classes ) ) ? $vat_class : '',
678
-					'show_option_all'  => false,
679
-					'show_option_none' => false,
680
-				)
681
-			);
682
-
683
-		}
684
-
685
-		// Filter by item type.
686
-		$type   = '';
687
-		if ( isset( $_GET['type'] ) ) {
688
-			$type   = sanitize_text_field( $_GET['type'] );
689
-		}
690
-
691
-		wpinv_html_select(
692
-			array(
693
-				'options'          => array_merge(
694
-					array(
695
-						'' => __( 'All item types', 'invoicing' ),
696
-					),
697
-					wpinv_get_item_types()
698
-				),
699
-				'name'             => 'type',
700
-				'id'               => 'type',
701
-				'selected'         => in_array( $type, wpinv_item_types() ) ? $type : '',
702
-				'show_option_all'  => false,
703
-				'show_option_none' => false,
704
-			)
705
-		);
706
-
707
-	}
708
-
709
-	/**
710
-	 * Filters the item query.
711
-	 */
712
-	public static function filter_item_query( $query ) {
713
-
714
-		// modify the query only if it admin and main query.
715
-		if ( ! ( is_admin() && $query->is_main_query() ) ) {
716
-			return $query;
717
-		}
718
-
719
-		// we want to modify the query for our items.
720
-		if ( empty( $query->query['post_type'] ) || 'wpi_item' != $query->query['post_type'] ) {
721
-			return $query;
722
-		}
723
-
724
-		if ( empty( $query->query_vars['meta_query'] ) ) {
725
-			$query->query_vars['meta_query'] = array();
726
-		}
727
-
728
-		// Filter vat rule type
724
+        if ( empty( $query->query_vars['meta_query'] ) ) {
725
+            $query->query_vars['meta_query'] = array();
726
+        }
727
+
728
+        // Filter vat rule type
729 729
         if ( ! empty( $_GET['vat_rule'] ) ) {
730 730
             $query->query_vars['meta_query'][] = array(
731 731
                 'key'     => '_wpinv_vat_rule',
@@ -750,97 +750,97 @@  discard block
 block discarded – undo
750 750
                 'value'   => sanitize_text_field( $_GET['type'] ),
751 751
                 'compare' => '=',
752 752
             );
753
-		}
754
-
755
-	}
756
-
757
-	/**
758
-	 * Reorders items.
759
-	 */
760
-	public static function reorder_items( $vars ) {
761
-		global $typenow;
762
-
763
-		if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
764
-			return $vars;
765
-		}
766
-
767
-		// By item type.
768
-		if ( 'type' == $vars['orderby'] ) {
769
-			return array_merge(
770
-				$vars,
771
-				array(
772
-					'meta_key' => '_wpinv_type',
773
-					'orderby'  => 'meta_value',
774
-				)
775
-			);
776
-		}
777
-
778
-		// By vat class.
779
-		if ( 'vat_class' == $vars['orderby'] ) {
780
-			return array_merge(
781
-				$vars,
782
-				array(
783
-					'meta_key' => '_wpinv_vat_class',
784
-					'orderby'  => 'meta_value',
785
-				)
786
-			);
787
-		}
788
-
789
-		// By vat rule.
790
-		if ( 'vat_rule' == $vars['orderby'] ) {
791
-			return array_merge(
792
-				$vars,
793
-				array(
794
-					'meta_key' => '_wpinv_vat_rule',
795
-					'orderby'  => 'meta_value',
796
-				)
797
-			);
798
-		}
799
-
800
-		// By price.
801
-		if ( 'price' == $vars['orderby'] ) {
802
-			return array_merge(
803
-				$vars,
804
-				array(
805
-					'meta_key' => '_wpinv_price',
806
-					'orderby'  => 'meta_value_num',
807
-				)
808
-			);
809
-		}
810
-
811
-		return $vars;
812
-
813
-	}
814
-
815
-	/**
816
-	 * Fired when deleting a post.
817
-	 */
818
-	public static function delete_post( $post_id ) {
819
-
820
-		switch ( get_post_type( $post_id ) ) {
821
-
822
-			case 'wpi_item':
823
-				do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
824
-				break;
825
-
826
-			case 'wpi_payment_form':
827
-				do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
828
-				break;
829
-
830
-			case 'wpi_discount':
831
-				do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
832
-				break;
833
-
834
-			case 'wpi_invoice':
835
-				$invoice = new WPInv_Invoice( $post_id );
836
-				do_action( 'getpaid_before_delete_invoice', $invoice );
837
-				$invoice->get_data_store()->delete_items( $invoice );
838
-				$invoice->get_data_store()->delete_special_fields( $invoice );
839
-				break;
840
-		}
841
-	}
842
-
843
-	/**
753
+        }
754
+
755
+    }
756
+
757
+    /**
758
+     * Reorders items.
759
+     */
760
+    public static function reorder_items( $vars ) {
761
+        global $typenow;
762
+
763
+        if ( 'wpi_item' !== $typenow || empty( $vars['orderby'] ) ) {
764
+            return $vars;
765
+        }
766
+
767
+        // By item type.
768
+        if ( 'type' == $vars['orderby'] ) {
769
+            return array_merge(
770
+                $vars,
771
+                array(
772
+                    'meta_key' => '_wpinv_type',
773
+                    'orderby'  => 'meta_value',
774
+                )
775
+            );
776
+        }
777
+
778
+        // By vat class.
779
+        if ( 'vat_class' == $vars['orderby'] ) {
780
+            return array_merge(
781
+                $vars,
782
+                array(
783
+                    'meta_key' => '_wpinv_vat_class',
784
+                    'orderby'  => 'meta_value',
785
+                )
786
+            );
787
+        }
788
+
789
+        // By vat rule.
790
+        if ( 'vat_rule' == $vars['orderby'] ) {
791
+            return array_merge(
792
+                $vars,
793
+                array(
794
+                    'meta_key' => '_wpinv_vat_rule',
795
+                    'orderby'  => 'meta_value',
796
+                )
797
+            );
798
+        }
799
+
800
+        // By price.
801
+        if ( 'price' == $vars['orderby'] ) {
802
+            return array_merge(
803
+                $vars,
804
+                array(
805
+                    'meta_key' => '_wpinv_price',
806
+                    'orderby'  => 'meta_value_num',
807
+                )
808
+            );
809
+        }
810
+
811
+        return $vars;
812
+
813
+    }
814
+
815
+    /**
816
+     * Fired when deleting a post.
817
+     */
818
+    public static function delete_post( $post_id ) {
819
+
820
+        switch ( get_post_type( $post_id ) ) {
821
+
822
+            case 'wpi_item':
823
+                do_action( 'getpaid_before_delete_item', new WPInv_Item( $post_id ) );
824
+                break;
825
+
826
+            case 'wpi_payment_form':
827
+                do_action( 'getpaid_before_delete_payment_form', new GetPaid_Payment_Form( $post_id ) );
828
+                break;
829
+
830
+            case 'wpi_discount':
831
+                do_action( 'getpaid_before_delete_discount', new WPInv_Discount( $post_id ) );
832
+                break;
833
+
834
+            case 'wpi_invoice':
835
+                $invoice = new WPInv_Invoice( $post_id );
836
+                do_action( 'getpaid_before_delete_invoice', $invoice );
837
+                $invoice->get_data_store()->delete_items( $invoice );
838
+                $invoice->get_data_store()->delete_special_fields( $invoice );
839
+                break;
840
+        }
841
+    }
842
+
843
+    /**
844 844
      * Add a post display state for special GetPaid pages in the page list table.
845 845
      *
846 846
      * @param array   $post_states An array of post display states.
@@ -854,21 +854,21 @@  discard block
 block discarded – undo
854 854
             $post_states['getpaid_success_page'] = __( 'GetPaid Receipt Page', 'invoicing' );
855 855
         }
856 856
 
857
-		foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
857
+        foreach ( getpaid_get_invoice_post_types() as $post_type => $label ) {
858 858
 
859
-			if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
860
-				$post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
861
-					__( 'GetPaid %s History Page', 'invoicing' ),
862
-					$label
863
-				);
864
-			}
859
+            if ( wpinv_get_option( "{$post_type}_history_page", 0 ) == $post->ID ) {
860
+                $post_states[ "getpaid_{$post_type}_history_page" ] = sprintf(
861
+                    __( 'GetPaid %s History Page', 'invoicing' ),
862
+                    $label
863
+                );
864
+            }
865 865
 }
866 866
 
867
-		if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
867
+        if ( wpinv_get_option( 'invoice_subscription_page', 0 ) == $post->ID ) {
868 868
             $post_states['getpaid_invoice_subscription_page'] = __( 'GetPaid Subscription Page', 'invoicing' );
869 869
         }
870 870
 
871
-		if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
871
+        if ( wpinv_get_option( 'checkout_page', 0 ) == $post->ID ) {
872 872
             $post_states['getpaid_checkout_page'] = __( 'GetPaid Checkout Page', 'invoicing' );
873 873
         }
874 874
 
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-invoice-address.php 1 patch
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -17,10 +17,10 @@  discard block
 block discarded – undo
17 17
 class GetPaid_Meta_Box_Invoice_Address {
18 18
 
19 19
     /**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24 24
     public static function output( $post ) {
25 25
 
26 26
         // Prepare the invoice.
@@ -225,37 +225,37 @@  discard block
 block discarded – undo
225 225
 
226 226
                                 if ( empty( $states ) ) {
227 227
 
228
-								aui()->input(
229
-								array(
230
-								'type'        => 'text',
231
-								'id'          => 'wpinv_state',
232
-								'name'        => 'wpinv_state',
233
-								'label'       => __( 'State', 'invoicing' ),
234
-								'label_type'  => 'vertical',
235
-								'placeholder' => '',
236
-								'class'       => 'form-control-sm',
237
-								'value'       => $invoice->get_state( 'edit' ),
238
-								),
239
-								true
240
-							);
228
+                                aui()->input(
229
+                                array(
230
+                                'type'        => 'text',
231
+                                'id'          => 'wpinv_state',
232
+                                'name'        => 'wpinv_state',
233
+                                'label'       => __( 'State', 'invoicing' ),
234
+                                'label_type'  => 'vertical',
235
+                                'placeholder' => '',
236
+                                'class'       => 'form-control-sm',
237
+                                'value'       => $invoice->get_state( 'edit' ),
238
+                                ),
239
+                                true
240
+                            );
241 241
 
242 242
                                 } else {
243 243
 
244
-								aui()->select(
245
-								array(
246
-								'id'               => 'wpinv_state',
247
-								'name'             => 'wpinv_state',
248
-								'label'            => __( 'State', 'invoicing' ),
249
-								'label_type'       => 'vertical',
250
-								'placeholder'      => __( 'Select a state', 'invoicing' ),
251
-								'class'            => 'form-control-sm',
252
-								'value'            => $invoice->get_state( 'edit' ),
253
-								'options'          => $states,
254
-								'data-allow-clear' => 'false',
255
-								'select2'          => true,
256
-								),
257
-								true
258
-								);
244
+                                aui()->select(
245
+                                array(
246
+                                'id'               => 'wpinv_state',
247
+                                'name'             => 'wpinv_state',
248
+                                'label'            => __( 'State', 'invoicing' ),
249
+                                'label_type'       => 'vertical',
250
+                                'placeholder'      => __( 'Select a state', 'invoicing' ),
251
+                                'class'            => 'form-control-sm',
252
+                                'value'            => $invoice->get_state( 'edit' ),
253
+                                'options'          => $states,
254
+                                'data-allow-clear' => 'false',
255
+                                'select2'          => true,
256
+                                ),
257
+                                true
258
+                                );
259 259
 
260 260
                                 }
261 261
 
@@ -381,18 +381,18 @@  discard block
 block discarded – undo
381 381
     }
382 382
 
383 383
     /**
384
-	 * Save meta box data.
385
-	 *
386
-	 * @param int $post_id
387
-	 */
388
-	public static function save( $post_id ) {
384
+     * Save meta box data.
385
+     *
386
+     * @param int $post_id
387
+     */
388
+    public static function save( $post_id ) {
389 389
 
390 390
         // Prepare the invoice.
391 391
         $invoice = new WPInv_Invoice( $post_id );
392 392
 
393 393
         // Load new data.
394 394
         $invoice->set_props(
395
-			array(
395
+            array(
396 396
                 'template'       => isset( $_POST['wpinv_template'] ) ? wpinv_clean( $_POST['wpinv_template'] ) : null,
397 397
                 'email_cc'       => isset( $_POST['wpinv_cc'] ) ? wpinv_clean( $_POST['wpinv_cc'] ) : null,
398 398
                 'disable_taxes'  => ! empty( $_POST['disable_taxes'] ),
@@ -415,7 +415,7 @@  discard block
 block discarded – undo
415 415
                 'due_date'       => isset( $_POST['wpinv_due_date'] ) ? wpinv_clean( $_POST['wpinv_due_date'] ) : null,
416 416
                 'number'         => isset( $_POST['wpinv_number'] ) ? wpinv_clean( $_POST['wpinv_number'] ) : null,
417 417
                 'status'         => isset( $_POST['wpinv_status'] ) ? wpinv_clean( $_POST['wpinv_status'] ) : null,
418
-			)
418
+            )
419 419
         );
420 420
 
421 421
         // Discount code.
@@ -471,6 +471,6 @@  discard block
 block discarded – undo
471 471
         }
472 472
 
473 473
         // Fires after an invoice is saved.
474
-		do_action( 'wpinv_invoice_metabox_saved', $invoice );
475
-	}
474
+        do_action( 'wpinv_invoice_metabox_saved', $invoice );
475
+    }
476 476
 }
Please login to merge, or discard this patch.
includes/wpinv-address-functions.php 1 patch
Indentation   +87 added lines, -87 removed lines patch added patch discarded remove patch
@@ -13,9 +13,9 @@  discard block
 block discarded – undo
13 13
 
14 14
 
15 15
 function wpinv_get_default_country() {
16
-	$country = wpinv_get_option( 'default_country', 'UK' );
16
+    $country = wpinv_get_option( 'default_country', 'UK' );
17 17
 
18
-	return apply_filters( 'wpinv_default_country', $country );
18
+    return apply_filters( 'wpinv_default_country', $country );
19 19
 }
20 20
 
21 21
 /**
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
  */
37 37
 function wpinv_sanitize_country( $country ) {
38 38
 
39
-	// Enure the country is specified
39
+    // Enure the country is specified
40 40
     if ( empty( $country ) ) {
41 41
         $country = wpinv_get_default_country();
42 42
     }
@@ -66,9 +66,9 @@  discard block
 block discarded – undo
66 66
 }
67 67
 
68 68
 function wpinv_get_default_state() {
69
-	$state = wpinv_get_option( 'default_state', '' );
69
+    $state = wpinv_get_option( 'default_state', '' );
70 70
 
71
-	return apply_filters( 'wpinv_default_state', $state );
71
+    return apply_filters( 'wpinv_default_state', $state );
72 72
 }
73 73
 
74 74
 function wpinv_state_name( $state_code = '', $country_code = '' ) {
@@ -303,11 +303,11 @@  discard block
 block discarded – undo
303 303
 
304 304
     $country = wpinv_sanitize_country( $country );
305 305
 
306
-	foreach ( wpinv_get_continents( 'countries' ) as $continent_code => $countries ) {
307
-		if ( false !== array_search( $country, $countries, true ) ) {
308
-			return $continent_code;
309
-		}
310
-	}
306
+    foreach ( wpinv_get_continents( 'countries' ) as $continent_code => $countries ) {
307
+        if ( false !== array_search( $country, $countries, true ) ) {
308
+            return $continent_code;
309
+        }
310
+    }
311 311
 
312 312
     return '';
313 313
 
@@ -599,31 +599,31 @@  discard block
 block discarded – undo
599 599
 }
600 600
 
601 601
 function wpinv_get_states_field() {
602
-	if ( empty( $_POST['country'] ) ) {
603
-		$_POST['country'] = wpinv_get_default_country();
604
-	}
605
-	$states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) );
602
+    if ( empty( $_POST['country'] ) ) {
603
+        $_POST['country'] = wpinv_get_default_country();
604
+    }
605
+    $states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) );
606 606
 
607
-	if ( ! empty( $states ) ) {
608
-		$sanitized_field_name = sanitize_text_field( $_POST['field_name'] );
607
+    if ( ! empty( $states ) ) {
608
+        $sanitized_field_name = sanitize_text_field( $_POST['field_name'] );
609 609
 
610 610
         $class  = isset( $_POST['class'] ) ? esc_attr( sanitize_text_field( $_POST['class'] ) ) : '';
611 611
         $class .= " $sanitized_field_name getpaid_js_field-state custom-select wpinv-select wpi_select2";
612 612
 
613 613
         $args  = array(
614
-			'name'             => $sanitized_field_name,
615
-			'id'               => $sanitized_field_name,
616
-			'class'            => implode( ' ', array_unique( explode( ' ', $class ) ) ),
617
-			'options'          => array_merge( array( '' => '' ), $states ),
618
-			'show_option_all'  => false,
619
-			'show_option_none' => false,
620
-		);
621
-
622
-		wpinv_html_select( $args );
623
-
624
-	} else {
625
-		echo 'nostates';
626
-	}
614
+            'name'             => $sanitized_field_name,
615
+            'id'               => $sanitized_field_name,
616
+            'class'            => implode( ' ', array_unique( explode( ' ', $class ) ) ),
617
+            'options'          => array_merge( array( '' => '' ), $states ),
618
+            'show_option_all'  => false,
619
+            'show_option_none' => false,
620
+        );
621
+
622
+        wpinv_html_select( $args );
623
+
624
+    } else {
625
+        echo 'nostates';
626
+    }
627 627
 
628 628
 }
629 629
 
@@ -642,47 +642,47 @@  discard block
 block discarded – undo
642 642
  */
643 643
 function wpinv_get_address_formats() {
644 644
 
645
-		return apply_filters(
645
+        return apply_filters(
646 646
             'wpinv_localisation_address_formats',
647
-			array(
648
-				'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}",
649
-				'AU'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}",
650
-				'AT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
651
-				'BE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
652
-				'CA'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{state_code}}&nbsp;&nbsp;{{zip}}\n{{country}}",
653
-				'CH'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
654
-				'CL'      => "{{company}}\n{{name}}\n{{address}}\n{{state}}\n{{zip}} {{city}}\n{{country}}",
655
-				'CN'      => "{{country}} {{zip}}\n{{state}}, {{city}}, {{address}}\n{{company}}\n{{name}}",
656
-				'CZ'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
657
-				'DE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
658
-				'EE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
659
-				'FI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
660
-				'DK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
661
-				'FR'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city_upper}}\n{{country}}",
662
-				'HK'      => "{{company}}\n{{first_name}} {{last_name_upper}}\n{{address}}\n{{city_upper}}\n{{state_upper}}\n{{country}}",
663
-				'HU'      => "{{name}}\n{{company}}\n{{city}}\n{{address}}\n{{zip}}\n{{country}}",
664
-				'IN'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{zip}}\n{{state}}, {{country}}",
665
-				'IS'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
666
-				'IT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}}\n{{city}}\n{{state_upper}}\n{{country}}",
667
-				'JP'      => "{{zip}}\n{{state}} {{city}} {{address}}\n{{company}}\n{{last_name}} {{first_name}}\n{{country}}",
668
-				'TW'      => "{{company}}\n{{last_name}} {{first_name}}\n{{address}}\n{{state}}, {{city}} {{zip}}\n{{country}}",
669
-				'LI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
670
-				'NL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
671
-				'NZ'      => "{{name}}\n{{company}}\n{{address}}\n{{city}} {{zip}}\n{{country}}",
672
-				'NO'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
673
-				'PL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
674
-				'PT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
675
-				'SK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
676
-				'RS'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
677
-				'SI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
678
-				'ES'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{state}}\n{{country}}",
679
-				'SE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
680
-				'TR'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}} {{state}}\n{{country}}",
681
-				'UG'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}, {{country}}",
682
-				'US'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}, {{state_code}} {{zip}}\n{{country}}",
683
-				'VN'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{country}}",
684
-			)
685
-		);
647
+            array(
648
+                'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}",
649
+                'AU'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}",
650
+                'AT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
651
+                'BE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
652
+                'CA'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{state_code}}&nbsp;&nbsp;{{zip}}\n{{country}}",
653
+                'CH'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
654
+                'CL'      => "{{company}}\n{{name}}\n{{address}}\n{{state}}\n{{zip}} {{city}}\n{{country}}",
655
+                'CN'      => "{{country}} {{zip}}\n{{state}}, {{city}}, {{address}}\n{{company}}\n{{name}}",
656
+                'CZ'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
657
+                'DE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
658
+                'EE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
659
+                'FI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
660
+                'DK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
661
+                'FR'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city_upper}}\n{{country}}",
662
+                'HK'      => "{{company}}\n{{first_name}} {{last_name_upper}}\n{{address}}\n{{city_upper}}\n{{state_upper}}\n{{country}}",
663
+                'HU'      => "{{name}}\n{{company}}\n{{city}}\n{{address}}\n{{zip}}\n{{country}}",
664
+                'IN'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{zip}}\n{{state}}, {{country}}",
665
+                'IS'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
666
+                'IT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}}\n{{city}}\n{{state_upper}}\n{{country}}",
667
+                'JP'      => "{{zip}}\n{{state}} {{city}} {{address}}\n{{company}}\n{{last_name}} {{first_name}}\n{{country}}",
668
+                'TW'      => "{{company}}\n{{last_name}} {{first_name}}\n{{address}}\n{{state}}, {{city}} {{zip}}\n{{country}}",
669
+                'LI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
670
+                'NL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
671
+                'NZ'      => "{{name}}\n{{company}}\n{{address}}\n{{city}} {{zip}}\n{{country}}",
672
+                'NO'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
673
+                'PL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
674
+                'PT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
675
+                'SK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
676
+                'RS'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
677
+                'SI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
678
+                'ES'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{state}}\n{{country}}",
679
+                'SE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
680
+                'TR'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}} {{state}}\n{{country}}",
681
+                'UG'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}, {{country}}",
682
+                'US'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}, {{state_code}} {{zip}}\n{{country}}",
683
+                'VN'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{country}}",
684
+            )
685
+        );
686 686
 }
687 687
 
688 688
 /**
@@ -699,21 +699,21 @@  discard block
 block discarded – undo
699 699
     }
700 700
 
701 701
     // Get all formats.
702
-	$formats = wpinv_get_address_formats();
702
+    $formats = wpinv_get_address_formats();
703 703
 
704
-	// Get format for the specified country.
705
-	$format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default'];
704
+    // Get format for the specified country.
705
+    $format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default'];
706 706
 
707 707
     /**
708
-	 * Filters the address format to use on Invoices.
708
+     * Filters the address format to use on Invoices.
709 709
      *
710 710
      * New lines will be replaced by a `br` element. Double new lines will be replaced by a paragraph. HTML tags are allowed.
711
-	 *
712
-	 * @since 1.0.13
713
-	 *
714
-	 * @param string $format  The address format to use.
711
+     *
712
+     * @since 1.0.13
713
+     *
714
+     * @param string $format  The address format to use.
715 715
      * @param string $country The country who's address format is being retrieved.
716
-	 */
716
+     */
717 717
     return apply_filters( 'wpinv_get_full_address_format', $format, $country );
718 718
 }
719 719
 
@@ -734,8 +734,8 @@  discard block
 block discarded – undo
734 734
         'country'    => '',
735 735
         'zip'        => '',
736 736
         'first_name' => '',
737
-		'last_name'  => '',
738
-		'company'    => '',
737
+        'last_name'  => '',
738
+        'company'    => '',
739 739
     );
740 740
 
741 741
     $args    = map_deep( wp_parse_args( $billing_details, $default_args ), 'trim' );
@@ -756,14 +756,14 @@  discard block
 block discarded – undo
756 756
     $args['country_code'] = $country;
757 757
 
758 758
     /**
759
-	 * Filters the address format replacements to use on Invoices.
759
+     * Filters the address format replacements to use on Invoices.
760
+     *
761
+     *
762
+     * @since 1.0.13
760 763
      *
761
-	 *
762
-	 * @since 1.0.13
763
-	 *
764
-	 * @param array $replacements  The address replacements to use.
764
+     * @param array $replacements  The address replacements to use.
765 765
      * @param array $billing_details  The billing details to use.
766
-	 */
766
+     */
767 767
     $replacements = apply_filters( 'wpinv_get_invoice_address_replacements', $args, $billing_details );
768 768
 
769 769
     $return = array();
@@ -786,5 +786,5 @@  discard block
 block discarded – undo
786 786
  * @return string
787 787
  */
788 788
 function wpinv_trim_formatted_address_line( $line ) {
789
-	return trim( $line, ', ' );
789
+    return trim( $line, ', ' );
790 790
 }
Please login to merge, or discard this patch.
includes/wpinv-template-functions.php 1 patch
Indentation   +125 added lines, -125 removed lines patch added patch discarded remove patch
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
  * @param string $default_path The root path to the default template. Defaults to invoicing/templates
141 141
  */
142 142
 function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
143
-	return getpaid_template()->get_template( $template_name, $args, $template_path, $default_path );
143
+    return getpaid_template()->get_template( $template_name, $args, $template_path, $default_path );
144 144
 }
145 145
 
146 146
 /**
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
  * @return string
159 159
  */
160 160
 function wpinv_get_theme_template_dir_name() {
161
-	return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
161
+    return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
162 162
 }
163 163
 
164 164
 /**
@@ -175,125 +175,125 @@  discard block
 block discarded – undo
175 175
 }
176 176
 
177 177
 function wpinv_get_template_part( $slug, $name = null, $load = true ) {
178
-	do_action( 'get_template_part_' . $slug, $slug, $name );
178
+    do_action( 'get_template_part_' . $slug, $slug, $name );
179 179
 
180
-	// Setup possible parts
181
-	$templates = array();
182
-	if ( isset( $name ) ) {
183
-		$templates[] = $slug . '-' . $name . '.php';
180
+    // Setup possible parts
181
+    $templates = array();
182
+    if ( isset( $name ) ) {
183
+        $templates[] = $slug . '-' . $name . '.php';
184 184
     }
185
-	$templates[] = $slug . '.php';
185
+    $templates[] = $slug . '.php';
186 186
 
187
-	// Allow template parts to be filtered
188
-	$templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
187
+    // Allow template parts to be filtered
188
+    $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
189 189
 
190
-	// Return the part that is found
191
-	return wpinv_locate_tmpl( $templates, $load, false );
190
+    // Return the part that is found
191
+    return wpinv_locate_tmpl( $templates, $load, false );
192 192
 }
193 193
 
194 194
 function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) {
195
-	// No file found yet
196
-	$located = false;
195
+    // No file found yet
196
+    $located = false;
197 197
 
198
-	// Try to find a template file
199
-	foreach ( (array)$template_names as $template_name ) {
198
+    // Try to find a template file
199
+    foreach ( (array)$template_names as $template_name ) {
200 200
 
201
-		// Continue if template is empty
202
-		if ( empty( $template_name ) ) {
203
-			continue;
201
+        // Continue if template is empty
202
+        if ( empty( $template_name ) ) {
203
+            continue;
204 204
         }
205 205
 
206
-		// Trim off any slashes from the template name
207
-		$template_name = ltrim( $template_name, '/' );
206
+        // Trim off any slashes from the template name
207
+        $template_name = ltrim( $template_name, '/' );
208 208
 
209
-		// try locating this template file by looping through the template paths
210
-		foreach ( wpinv_get_theme_template_paths() as $template_path ) {
209
+        // try locating this template file by looping through the template paths
210
+        foreach ( wpinv_get_theme_template_paths() as $template_path ) {
211 211
 
212
-			if ( file_exists( $template_path . $template_name ) ) {
213
-				$located = $template_path . $template_name;
214
-				break;
215
-			}
216
-		}
212
+            if ( file_exists( $template_path . $template_name ) ) {
213
+                $located = $template_path . $template_name;
214
+                break;
215
+            }
216
+        }
217 217
 
218
-		if ( ! empty( $located ) ) {
219
-			break;
220
-		}
221
-	}
218
+        if ( ! empty( $located ) ) {
219
+            break;
220
+        }
221
+    }
222 222
 
223
-	if ( ( true == $load ) && ! empty( $located ) ) {
224
-		load_template( $located, $require_once );
223
+    if ( ( true == $load ) && ! empty( $located ) ) {
224
+        load_template( $located, $require_once );
225 225
     }
226 226
 
227
-	return $located;
227
+    return $located;
228 228
 }
229 229
 
230 230
 function wpinv_get_theme_template_paths() {
231
-	$template_dir = wpinv_get_theme_template_dir_name();
231
+    $template_dir = wpinv_get_theme_template_dir_name();
232 232
 
233
-	$file_paths = array(
234
-		1   => trailingslashit( get_stylesheet_directory() ) . $template_dir,
235
-		10  => trailingslashit( get_template_directory() ) . $template_dir,
236
-		100 => wpinv_get_templates_dir(),
237
-	);
233
+    $file_paths = array(
234
+        1   => trailingslashit( get_stylesheet_directory() ) . $template_dir,
235
+        10  => trailingslashit( get_template_directory() ) . $template_dir,
236
+        100 => wpinv_get_templates_dir(),
237
+    );
238 238
 
239
-	$file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
239
+    $file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
240 240
 
241
-	// sort the file paths based on priority
242
-	ksort( $file_paths, SORT_NUMERIC );
241
+    // sort the file paths based on priority
242
+    ksort( $file_paths, SORT_NUMERIC );
243 243
 
244
-	return array_map( 'trailingslashit', $file_paths );
244
+    return array_map( 'trailingslashit', $file_paths );
245 245
 }
246 246
 
247 247
 function wpinv_checkout_meta_tags() {
248 248
 
249
-	$pages   = array();
250
-	$pages[] = wpinv_get_option( 'success_page' );
251
-	$pages[] = wpinv_get_option( 'failure_page' );
252
-	$pages[] = wpinv_get_option( 'invoice_history_page' );
253
-	$pages[] = wpinv_get_option( 'invoice_subscription_page' );
249
+    $pages   = array();
250
+    $pages[] = wpinv_get_option( 'success_page' );
251
+    $pages[] = wpinv_get_option( 'failure_page' );
252
+    $pages[] = wpinv_get_option( 'invoice_history_page' );
253
+    $pages[] = wpinv_get_option( 'invoice_subscription_page' );
254 254
 
255
-	if ( ! wpinv_is_checkout() && ! is_page( $pages ) ) {
256
-		return;
257
-	}
255
+    if ( ! wpinv_is_checkout() && ! is_page( $pages ) ) {
256
+        return;
257
+    }
258 258
 
259
-	echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
259
+    echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
260 260
 }
261 261
 add_action( 'wp_head', 'wpinv_checkout_meta_tags' );
262 262
 
263 263
 function wpinv_add_body_classes( $class ) {
264
-	$classes = (array)$class;
264
+    $classes = (array)$class;
265 265
 
266
-	if ( wpinv_is_checkout() ) {
267
-		$classes[] = 'wpinv-checkout';
268
-		$classes[] = 'wpinv-page';
269
-	}
266
+    if ( wpinv_is_checkout() ) {
267
+        $classes[] = 'wpinv-checkout';
268
+        $classes[] = 'wpinv-page';
269
+    }
270 270
 
271
-	if ( wpinv_is_success_page() ) {
272
-		$classes[] = 'wpinv-success';
273
-		$classes[] = 'wpinv-page';
274
-	}
271
+    if ( wpinv_is_success_page() ) {
272
+        $classes[] = 'wpinv-success';
273
+        $classes[] = 'wpinv-page';
274
+    }
275 275
 
276
-	if ( wpinv_is_failed_transaction_page() ) {
277
-		$classes[] = 'wpinv-failed-transaction';
278
-		$classes[] = 'wpinv-page';
279
-	}
276
+    if ( wpinv_is_failed_transaction_page() ) {
277
+        $classes[] = 'wpinv-failed-transaction';
278
+        $classes[] = 'wpinv-page';
279
+    }
280 280
 
281
-	if ( wpinv_is_invoice_history_page() ) {
282
-		$classes[] = 'wpinv-history';
283
-		$classes[] = 'wpinv-page';
284
-	}
281
+    if ( wpinv_is_invoice_history_page() ) {
282
+        $classes[] = 'wpinv-history';
283
+        $classes[] = 'wpinv-page';
284
+    }
285 285
 
286
-	if ( wpinv_is_subscriptions_history_page() ) {
287
-		$classes[] = 'wpinv-subscription';
288
-		$classes[] = 'wpinv-page';
289
-	}
286
+    if ( wpinv_is_subscriptions_history_page() ) {
287
+        $classes[] = 'wpinv-subscription';
288
+        $classes[] = 'wpinv-page';
289
+    }
290 290
 
291
-	if ( wpinv_is_test_mode() ) {
292
-		$classes[] = 'wpinv-test-mode';
293
-		$classes[] = 'wpinv-page';
294
-	}
291
+    if ( wpinv_is_test_mode() ) {
292
+        $classes[] = 'wpinv-test-mode';
293
+        $classes[] = 'wpinv-page';
294
+    }
295 295
 
296
-	return array_unique( $classes );
296
+    return array_unique( $classes );
297 297
 }
298 298
 add_filter( 'body_class', 'wpinv_add_body_classes' );
299 299
 
@@ -458,16 +458,16 @@  discard block
 block discarded – undo
458 458
 
459 459
     wpinv_html_select(
460 460
         array(
461
-			'name'             => $args['name'],
462
-			'selected'         => $args['selected'],
463
-			'id'               => $args['id'],
464
-			'class'            => $args['class'],
465
-			'options'          => $options,
466
-			'multiple'         => $args['multiple'],
467
-			'placeholder'      => $args['placeholder'],
468
-			'show_option_all'  => $args['show_option_all'],
469
-			'show_option_none' => $args['show_option_none'],
470
-			'data'             => $args['data'],
461
+            'name'             => $args['name'],
462
+            'selected'         => $args['selected'],
463
+            'id'               => $args['id'],
464
+            'class'            => $args['class'],
465
+            'options'          => $options,
466
+            'multiple'         => $args['multiple'],
467
+            'placeholder'      => $args['placeholder'],
468
+            'show_option_all'  => $args['show_option_all'],
469
+            'show_option_none' => $args['show_option_none'],
470
+            'data'             => $args['data'],
471 471
         )
472 472
     );
473 473
 
@@ -767,21 +767,21 @@  discard block
 block discarded – undo
767 767
 
768 768
     $formatted_address = str_ireplace( array_keys( $replacements ), $replacements, $format );
769 769
 
770
-	// Remove unavailable tags.
770
+    // Remove unavailable tags.
771 771
     $formatted_address = preg_replace( '/\{\{\w+\}\}/', '', $formatted_address );
772 772
 
773 773
     // Clean up white space.
774
-	$formatted_address = preg_replace( '/  +/', ' ', trim( $formatted_address ) );
774
+    $formatted_address = preg_replace( '/  +/', ' ', trim( $formatted_address ) );
775 775
     $formatted_address = preg_replace( '/\n\n+/', "\n", $formatted_address );
776 776
 
777 777
     // Break newlines apart and remove empty lines/trim commas and white space.
778
-	$formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );
778
+    $formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );
779 779
 
780 780
     // Add html breaks.
781
-	$formatted_address = implode( $separator, $formatted_address );
781
+    $formatted_address = implode( $separator, $formatted_address );
782 782
 
783
-	// We're done!
784
-	return $formatted_address;
783
+    // We're done!
784
+    return $formatted_address;
785 785
 
786 786
 }
787 787
 
@@ -827,7 +827,7 @@  discard block
 block discarded – undo
827 827
 function getpaid_display_invoice_subscriptions( $invoice ) {
828 828
 
829 829
     // Subscriptions.
830
-	$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
830
+    $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
831 831
 
832 832
     if ( empty( $subscriptions ) || ! $invoice->is_recurring() ) {
833 833
         return;
@@ -1039,7 +1039,7 @@  discard block
 block discarded – undo
1039 1039
 }
1040 1040
 
1041 1041
 function wpinv_empty_cart_message() {
1042
-	return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1042
+    return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1043 1043
 }
1044 1044
 
1045 1045
 /**
@@ -1237,9 +1237,9 @@  discard block
 block discarded – undo
1237 1237
 
1238 1238
     if ( 0 == count( $form->get_items() ) ) {
1239 1239
         aui()->alert(
1240
-			array(
1241
-				'type'    => 'warning',
1242
-				'content' => __( 'No published items found', 'invoicing' ),
1240
+            array(
1241
+                'type'    => 'warning',
1242
+                'content' => __( 'No published items found', 'invoicing' ),
1243 1243
             ),
1244 1244
             true
1245 1245
         );
@@ -1262,10 +1262,10 @@  discard block
 block discarded – undo
1262 1262
     $invoice = wpinv_get_invoice( $invoice_id );
1263 1263
 
1264 1264
     if ( empty( $invoice ) ) {
1265
-		aui()->alert(
1266
-			array(
1267
-				'type'    => 'warning',
1268
-				'content' => __( 'Invoice not found', 'invoicing' ),
1265
+        aui()->alert(
1266
+            array(
1267
+                'type'    => 'warning',
1268
+                'content' => __( 'Invoice not found', 'invoicing' ),
1269 1269
             ),
1270 1270
             true
1271 1271
         );
@@ -1273,10 +1273,10 @@  discard block
 block discarded – undo
1273 1273
     }
1274 1274
 
1275 1275
     if ( $invoice->is_paid() ) {
1276
-		aui()->alert(
1277
-			array(
1278
-				'type'    => 'warning',
1279
-				'content' => __( 'Invoice has already been paid', 'invoicing' ),
1276
+        aui()->alert(
1277
+            array(
1278
+                'type'    => 'warning',
1279
+                'content' => __( 'Invoice has already been paid', 'invoicing' ),
1280 1280
             ),
1281 1281
             true
1282 1282
         );
@@ -1340,7 +1340,7 @@  discard block
 block discarded – undo
1340 1340
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-form='$form'>$label</button>";
1341 1341
     }
1342 1342
 
1343
-	if ( ! empty( $items ) ) {
1343
+    if ( ! empty( $items ) ) {
1344 1344
         $items  = esc_attr( $items );
1345 1345
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-item='$items'>$label</button>";
1346 1346
     }
@@ -1526,21 +1526,21 @@  discard block
 block discarded – undo
1526 1526
 
1527 1527
         return aui()->select(
1528 1528
             array(
1529
-				'options'          => $states,
1530
-				'name'             => esc_attr( $field_name ),
1531
-				'id'               => sanitize_html_class( $field_name ) . $uniqid,
1532
-				'value'            => sanitize_text_field( $state ),
1533
-				'placeholder'      => $placeholder,
1534
-				'required'         => $required,
1535
-				'label'            => wp_kses_post( $label ),
1536
-				'label_type'       => 'vertical',
1537
-				'help_text'        => $help_text,
1538
-				'class'            => 'getpaid-address-field wpinv_state',
1539
-				'wrap_class'       => "$wrapper_class getpaid-address-field-wrapper__state",
1540
-				'label_class'      => 'getpaid-address-field-label getpaid-address-field-label__state',
1541
-				'extra_attributes' => array(
1542
-					'autocomplete' => 'address-level1',
1543
-				),
1529
+                'options'          => $states,
1530
+                'name'             => esc_attr( $field_name ),
1531
+                'id'               => sanitize_html_class( $field_name ) . $uniqid,
1532
+                'value'            => sanitize_text_field( $state ),
1533
+                'placeholder'      => $placeholder,
1534
+                'required'         => $required,
1535
+                'label'            => wp_kses_post( $label ),
1536
+                'label_type'       => 'vertical',
1537
+                'help_text'        => $help_text,
1538
+                'class'            => 'getpaid-address-field wpinv_state',
1539
+                'wrap_class'       => "$wrapper_class getpaid-address-field-wrapper__state",
1540
+                'label_class'      => 'getpaid-address-field-label getpaid-address-field-label__state',
1541
+                'extra_attributes' => array(
1542
+                    'autocomplete' => 'address-level1',
1543
+                ),
1544 1544
             ),
1545 1545
             $echo
1546 1546
         );
Please login to merge, or discard this patch.