| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/plugins/woocommerce/src/StoreApi/Schemas/V1/ |
Upload File : |
<?php
namespace Automattic\WooCommerce\StoreApi\Schemas\V1;
use Automattic\WooCommerce\StoreApi\Exceptions\RouteException;
use Automattic\WooCommerce\StoreApi\SchemaController;
use Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema;
use Automattic\WooCommerce\StoreApi\Utilities\CartController;
/**
* Class CartExtensionsSchema
*/
class CartExtensionsSchema extends AbstractSchema {
/**
* The schema item name.
*
* @var string
*/
protected $title = 'cart-extensions';
/**
* The schema item identifier.
*
* @var string
*/
const IDENTIFIER = 'cart-extensions';
/**
* Cart schema instance.
*
* @var CartSchema
*/
public $cart_schema;
/**
* Constructor.
*
* @param ExtendSchema $extend Rest Extending instance.
* @param SchemaController $controller Schema Controller instance.
*/
public function __construct( ExtendSchema $extend, SchemaController $controller ) {
parent::__construct( $extend, $controller );
$this->cart_schema = $this->controller->get( CartSchema::IDENTIFIER );
}
/**
* Cart extensions schema properties.
*
* @return array
*/
public function get_properties() {
return [];
}
/**
* Handle the request and return a valid response for this endpoint.
*
* @param \WP_REST_Request $request Request containing data for the extension callback.
* @throws RouteException When callback is not callable or parameters are incorrect.
*
* @return array
*/
public function get_item_response( $request = null ) {
try {
$callback = $this->extend->get_update_callback( $request['namespace'] );
} catch ( \Exception $e ) {
throw new RouteException(
'woocommerce_rest_cart_extensions_error',
esc_html( $e->getMessage() ),
400
);
}
// Run the callback. Exceptions are not caught here.
$callback( $request['data'] );
try {
// We recalculate the cart if we had something to run.
$controller = new CartController();
$cart = $controller->calculate_totals();
$response = $this->cart_schema->get_item_response( $cart );
return rest_ensure_response( $response );
} catch ( \Exception $e ) {
throw new RouteException(
'woocommerce_rest_cart_extensions_error',
esc_html( $e->getMessage() ),
400
);
}
}
}