PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Controllers / Admin / Invoices / InvoicesViewController.php
surecart / app / src / Controllers / Admin / Invoices Last commit date
InvoiceScriptsController.php 1 year ago InvoicesListTable.php 1 year ago InvoicesViewController.php 1 year ago
InvoicesViewController.php
118 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\Invoices;
4
5 use SureCart\Controllers\Admin\AdminController;
6 use SureCart\Controllers\Admin\Invoices\InvoicesListTable;
7 use SureCart\Models\Invoice;
8
9 /**
10 * Handles invoice admin requests.
11 */
12 class InvoicesViewController extends AdminController {
13 /**
14 * Invoices index.
15 */
16 public function index() {
17 $table = new InvoicesListTable();
18 $table->prepare_items();
19 $this->withHeader(
20 array(
21 'breadcrumbs' => [
22 'invoices' => [
23 'title' => __( 'Invoices', 'surecart' ),
24 ],
25 ],
26 'test_mode_toggle' => true,
27 )
28 );
29 return \SureCart::view( 'admin/invoices/index' )->with(
30 [
31 'table' => $table,
32 ]
33 );
34 }
35
36 /**
37 * Edit the invoice.
38 */
39 public function edit( $request ) {
40 // enqueue needed script.
41 add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( InvoiceScriptsController::class, 'enqueue' ) );
42
43 $invoice = null;
44 if ( $request->query( 'id' ) ) {
45 $invoice = Invoice::with(
46 [
47 'checkout',
48 'checkout.line_items',
49 'line_item.price',
50 'line_item.fees',
51 'line_item.variant',
52 'price.product',
53 'product.featured_product_media',
54 'product_media.media',
55 'checkout.customer',
56 'customer.shipping_address',
57 'customer.billing_address',
58 'checkout.payment_intent',
59 'checkout.discount',
60 'discount.promotion',
61 'discount.coupon',
62 'checkout.shipping_address',
63 'checkout.billing_address',
64 'checkout.shipping_choices',
65 'shipping_choices.shipping_method',
66 'payment_method.card',
67 'checkout.tax_identifier',
68 'checkout.order',
69 'checkout.payment_method',
70 'checkout.manual_payment_method',
71 ]
72 )->find( $request->query( 'id' ) );
73
74 if ( is_wp_error( $invoice ) ) {
75 wp_die( implode( ' ', array_map( 'esc_html', $invoice->get_error_messages() ) ) );
76 }
77 }
78
79 if ( ! empty( $invoice ) ) {
80 $this->preloadPaths(
81 [
82 '/surecart/v1/invoices/' . $invoice->id . '?context=edit',
83 ]
84 );
85 }
86
87 // return view.
88 return '<div id="app"></div>';
89 }
90
91 /**
92 * Create invoice and redirect to edit page.
93 *
94 * @param \SureCartCore\Requests\RequestInterface $request Request.
95 *
96 * @return void
97 */
98 public function create( $request ): void {
99 $live_mode = isset( $_GET['live_mode'] ) ? rest_sanitize_boolean( $_GET['live_mode'] ) : true;
100 $live_mode = $live_mode ? 'true' : 'false';
101
102 $invoice = Invoice::create(
103 [
104 'live_mode' => $live_mode,
105 ]
106 );
107
108 if ( is_wp_error( $invoice ) ) {
109 wp_die( $invoice->get_error_message() );
110 }
111
112 wp_safe_redirect(
113 admin_url( 'admin.php?page=sc-invoices&action=edit&id=' . $invoice->id . '&live_mode=' . $live_mode )
114 );
115 exit;
116 }
117 }
118