FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
surecart
/
app
/
src
/
Controllers
/
Admin
/
Invoices
Edit File: InvoicesViewController.php
<?php namespace SureCart\Controllers\Admin\Invoices; use SureCart\Controllers\Admin\AdminController; use SureCart\Controllers\Admin\Invoices\InvoicesListTable; use SureCart\Models\Invoice; /** * Handles invoice admin requests. */ class InvoicesViewController extends AdminController { /** * Invoices index. */ public function index() { $table = new InvoicesListTable(); $table->prepare_items(); $this->withHeader( array( 'breadcrumbs' => [ 'invoices' => [ 'title' => __( 'Invoices', 'surecart' ), ], ], 'test_mode_toggle' => true, ) ); return \SureCart::view( 'admin/invoices/index' )->with( [ 'table' => $table, ] ); } /** * Edit the invoice. */ public function edit( $request ) { // enqueue needed script. add_action( 'admin_enqueue_scripts', \SureCart::closure()->method( InvoiceScriptsController::class, 'enqueue' ) ); $invoice = null; if ( $request->query( 'id' ) ) { $invoice = Invoice::with( [ 'checkout', 'checkout.line_items', 'line_item.price', 'line_item.fees', 'line_item.variant', 'price.product', 'product.featured_product_media', 'product_media.media', 'checkout.customer', 'customer.shipping_address', 'customer.billing_address', 'checkout.payment_intent', 'checkout.discount', 'discount.promotion', 'discount.coupon', 'checkout.shipping_address', 'checkout.billing_address', 'checkout.shipping_choices', 'shipping_choices.shipping_method', 'payment_method.card', 'checkout.tax_identifier', 'checkout.order', 'checkout.payment_method', 'checkout.manual_payment_method', ] )->find( $request->query( 'id' ) ); if ( is_wp_error( $invoice ) ) { wp_die( implode( ' ', array_map( 'esc_html', $invoice->get_error_messages() ) ) ); } } if ( ! empty( $invoice ) ) { $this->preloadPaths( [ '/surecart/v1/invoices/' . $invoice->id . '?context=edit', ] ); } // return view. return '<div id="app"></div>'; } /** * Create invoice and redirect to edit page. * * @param \SureCartCore\Requests\RequestInterface $request Request. * * @return void */ public function create( $request ): void { $live_mode = isset( $_GET['live_mode'] ) ? rest_sanitize_boolean( $_GET['live_mode'] ) : true; $live_mode = $live_mode ? 'true' : 'false'; $invoice = Invoice::create( [ 'live_mode' => $live_mode, ] ); if ( is_wp_error( $invoice ) ) { wp_die( $invoice->get_error_message() ); } wp_safe_redirect( admin_url( 'admin.php?page=sc-invoices&action=edit&id=' . $invoice->id . '&live_mode=' . $live_mode ) ); exit; } }
Save
Back