PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.7.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.7.0
4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 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 / Rest / ShippingProviderTypeRestServiceProvider.php
surecart / app / src / Rest Last commit date
AbandonedCheckoutProtocolRestServiceProvider.php 3 years ago AbandonedCheckoutRestServiceProvider.php 2 years ago AccountRestServiceProvider.php 4 years ago ActivationRestServiceProvider.php 1 year ago AffiliationProductsRestServiceProvider.php 2 years ago AffiliationProtocolRestServiceProvider.php 2 years ago AffiliationRequestsRestServiceProvider.php 2 years ago AffiliationsRestServiceProvider.php 1 year ago AutoFeeProtocolRestServiceProvider.php 7 months ago AutoFeeRestServiceProvider.php 7 months ago BalanceTransactionRestServiceProvider.php 4 years ago BatchesRestServiceProvider.php 1 month ago BlockPatternsRestServiceProvider.php 4 years ago BrandRestServiceProvider.php 1 month ago BumpRestServiceProvider.php 1 month ago BundleItemsRestServiceProvider.php 1 month ago CancellationActRestServiceProvider.php 1 year ago CancellationReasonRestServiceProvider.php 1 year ago ChargesRestServiceProvider.php 4 years ago CheckEmailRestServiceProvider.php 3 years ago CheckoutRestServiceProvider.php 4 weeks ago ClicksRestServiceProvider.php 2 years ago CouponRestServiceProvider.php 4 years ago CustomerNotificationProtocolRestServiceProvider.php 4 years ago CustomerPortalProtocolRestServiceProvider.php 1 year ago CustomerRestServiceProvider.php 2 months ago DisplayCurrencyRestServiceProvider.php 1 year ago DisputesRestServiceProvider.php 11 months ago DownloadRestServiceProvider.php 4 months ago DraftCheckoutRestServiceProvider.php 1 year ago ExportsRestServiceProvider.php 2 years ago FulfillmentRestServiceProvider.php 3 years ago ImportRowsRestServiceProvider.php 3 months ago IncomingWebhooksRestServiceProvider.php 2 years ago IntegrationProvidersRestServiceProvider.php 4 years ago IntegrationsCatalogRestServiceProvider.php 1 year ago IntegrationsRestServiceProvider.php 4 years ago InvoicesRestServiceProvider.php 1 year ago LicenseRestServiceProvider.php 1 year ago LineItemsRestServiceProvider.php 1 year ago LoginRestServiceProvider.php 2 months ago ManualPaymentMethodsRestServiceProvider.php 3 years ago MediaRestServiceProvider.php 1 year ago OrderProtocolRestServiceProvider.php 1 year ago OrderRestServiceProvider.php 1 year ago ParcelTemplateRestServiceProvider.php 1 week ago PaymentIntentsRestServiceProvider.php 4 years ago PaymentMethodsRestServiceProvider.php 3 years ago PayoutGroupsRestServiceProvider.php 2 years ago PayoutsRestServiceProvider.php 6 months ago PeriodRestServiceProvider.php 3 years ago PluginInstallerRestServiceProvider.php 1 month ago PriceRestServiceProvider.php 1 month ago ProcessorRestServiceProvider.php 3 years ago ProductCollectionsRestServiceProvider.php 1 month ago ProductGroupsRestServiceProvider.php 1 month ago ProductMediaRestServiceProvider.php 1 month ago ProductsRestServiceProvider.php 1 month ago PromotionRestServiceProvider.php 4 years ago ProvisionalAccountRestServiceProvider.php 3 years ago PurchasesRestServiceProvider.php 4 years ago ReferralItemsRestServiceProvider.php 2 years ago ReferralsRestServiceProvider.php 2 years ago RefundsRestServiceProvider.php 4 years ago RegisteredWebhookRestServiceProvider.php 2 years ago RestServiceInterface.php 4 years ago RestServiceProvider.php 1 month ago ReturnItemsRestServiceProvider.php 2 years ago ReturnReasonsRestServiceProvider.php 2 years ago ReturnRequestsRestServiceProvider.php 2 years ago ReviewProtocolRestServiceProvider.php 6 months ago ReviewsRestServiceProvider.php 1 month ago RuleSchemaRestServiceProvider.php 7 months ago SettingsRestServiceProvider.php 1 year ago ShipmentRestServiceProvider.php 1 week ago ShippingMethodRestServiceProvider.php 3 years ago ShippingProfileRestServiceProvider.php 3 years ago ShippingProtocolRestServiceProvider.php 1 year ago ShippingProviderTypeRestServiceProvider.php 1 week ago ShippingRateRestServiceProvider.php 3 years ago ShippingZoneRestServiceProvider.php 3 years ago SiteHealthRestServiceProvider.php 2 years ago StatisticRestServiceProvider.php 3 years ago SubscriptionProtocolRestServiceProvider.php 6 months ago SubscriptionRestServiceProvider.php 2 years ago SwapRestServiceProvider.php 1 year ago TaxOverrideRestServiceProvider.php 1 year ago TaxProtocolRestServiceProvider.php 1 year ago TaxRegistrationRestServiceProvider.php 1 year ago TaxZoneRestServiceProvider.php 1 year ago UploadsRestServiceProvider.php 4 years ago UpsellFunnelRestServiceProvider.php 1 year ago UpsellRestServiceProvider.php 1 month ago VariantOptionsRestServiceProvider.php 1 month ago VariantValuesRestServiceProvider.php 1 month ago VariantsRestServiceProvider.php 1 month ago VerificationCodeRestServiceProvider.php 3 years ago WarehouseRestServiceProvider.php 1 week ago WebhooksRestServiceProvider.php 4 years ago
ShippingProviderTypeRestServiceProvider.php
155 lines
1 <?php
2
3 namespace SureCart\Rest;
4
5 use SureCart\Rest\RestServiceInterface;
6 use SureCart\Controllers\Rest\ShippingProviderTypesController;
7
8 /**
9 * Service provider for ShippingProvider Rest Requests
10 */
11 class ShippingProviderTypeRestServiceProvider extends RestServiceProvider implements RestServiceInterface {
12 /**
13 * Endpoint.
14 *
15 * @var string
16 */
17 protected $endpoint = 'shipping_providers';
18
19 /**
20 * Rest Controller
21 *
22 * @var string
23 */
24 protected $controller = ShippingProviderTypesController::class;
25
26 /**
27 * Methods allowed for the model.
28 *
29 * @var array
30 */
31 protected $methods = [ 'index', 'find' ];
32
33 /**
34 * Register REST Routes
35 *
36 * @return void
37 */
38 public function registerRoutes() {
39 register_rest_route(
40 "$this->name/v$this->version",
41 $this->endpoint . '/(?P<id>[^/]+)/carrier_accounts',
42 [
43 [
44 'methods' => \WP_REST_Server::READABLE,
45 'callback' => $this->callback( $this->controller, 'carrierAccounts' ),
46 'permission_callback' => [ $this, 'carrier_accounts_permissions_check' ],
47 ],
48 'schema' => [ $this, 'get_item_schema' ],
49 ]
50 );
51
52 register_rest_route(
53 "$this->name/v$this->version",
54 $this->endpoint . '/(?P<id>[^/]+)/carrier_parcel_templates',
55 [
56 [
57 'methods' => \WP_REST_Server::READABLE,
58 'callback' => $this->callback( $this->controller, 'carrierParcelTemplates' ),
59 'permission_callback' => [ $this, 'carrier_parcel_templates_permissions_check' ],
60 'args' => [
61 'carrier_token' => [
62 'description' => esc_html__( 'Only return templates for this carrier, by token or display name.', 'surecart' ),
63 'type' => 'string',
64 ],
65 ],
66 ],
67 'schema' => [ $this, 'get_item_schema' ],
68 ]
69 );
70 }
71
72 /**
73 * Carrier account permissions.
74 *
75 * Settings-only data (used to pick services for live rates), so this stays
76 * manager-only even though the provider list itself is readable by order
77 * editors.
78 *
79 * @param \WP_REST_Request $request Full details about the request.
80 * @return true|\WP_Error True if the request has access, WP_Error object otherwise.
81 */
82 public function carrier_accounts_permissions_check( $request ) {
83 return current_user_can( 'manage_sc_shop_settings' );
84 }
85
86 /**
87 * Carrier parcel template permissions.
88 *
89 * Read-only carrier reference data consumed by the fulfilment drawer, so
90 * this tracks the shipment quote capability rather than the
91 * `manage_sc_shop_settings` used by the settings-only routes above. Gating
92 * it on shop settings would stop an order editor from buying a label.
93 *
94 * @param \WP_REST_Request $request Full details about the request.
95 * @return true|\WP_Error True if the request has access, WP_Error object otherwise.
96 */
97 public function carrier_parcel_templates_permissions_check( $request ) {
98 return current_user_can( 'edit_sc_orders' ) || current_user_can( 'manage_sc_shop_settings' );
99 }
100
101 /**
102 * Get our sample schema for a post.
103 *
104 * @return array The sample schema for a post
105 */
106 public function get_item_schema() {
107 if ( $this->schema ) {
108 return $this->schema;
109 }
110
111 $this->schema = [
112 '$schema' => 'http://json-schema.org/draft-04/schema#',
113 'title' => $this->endpoint,
114 'type' => 'object',
115 'properties' => [
116 'id' => [
117 'description' => esc_html__( 'Unique identifier for the object.', 'surecart' ),
118 'type' => 'string',
119 'context' => [ 'view', 'edit', 'embed' ],
120 'readonly' => true,
121 ],
122 ],
123 ];
124
125 return $this->schema;
126 }
127
128 /**
129 * List permissions.
130 *
131 * Reads also allow order editors: the fulfilment drawer must know which
132 * provider (and mode) to quote against before a label can be bought.
133 * Connecting/configuring providers still happens app-side and the
134 * carrier_accounts route above stays manager-only.
135 *
136 * @param \WP_REST_Request $request Full details about the request.
137 * @return true|\WP_Error True if the request has access, WP_Error object otherwise.
138 */
139 public function get_items_permissions_check( $request ) {
140 return current_user_can( 'edit_sc_orders' ) || current_user_can( 'manage_sc_shop_settings' );
141 }
142
143 /**
144 * Single item permissions.
145 *
146 * Same read broadening as `get_items_permissions_check()`.
147 *
148 * @param \WP_REST_Request $request Full details about the request.
149 * @return true|\WP_Error True if the request has access, WP_Error object otherwise.
150 */
151 public function get_item_permissions_check( $request ) {
152 return current_user_can( 'edit_sc_orders' ) || current_user_can( 'manage_sc_shop_settings' );
153 }
154 }
155