Changeset 2228151
- Timestamp:
- 01/16/2020 01:16:15 AM (6 years ago)
- Location:
- servicebot/trunk
- Files:
-
- 161 added
- 5 edited
-
README.txt (modified) (1 diff)
-
admin/class-servicebot-admin.php (modified) (4 diffs)
-
admin/partials/servicebot-admin-display.php (modified) (1 diff)
-
admin/partials/servicebot-admin-stripe-webhooks.php (added)
-
public/class-servicebot-public.php (modified) (4 diffs)
-
public/stripe (added)
-
public/stripe/.coveralls.github-actions.yml (added)
-
public/stripe/.editorconfig (added)
-
public/stripe/.gitignore (added)
-
public/stripe/CHANGELOG.md (added)
-
public/stripe/CODE_OF_CONDUCT.md (added)
-
public/stripe/LICENSE (added)
-
public/stripe/Makefile (added)
-
public/stripe/README.md (added)
-
public/stripe/VERSION (added)
-
public/stripe/build.php (added)
-
public/stripe/composer.json (added)
-
public/stripe/data (added)
-
public/stripe/data/ca-certificates.crt (added)
-
public/stripe/init.php (added)
-
public/stripe/lib (added)
-
public/stripe/lib/Account.php (added)
-
public/stripe/lib/AccountLink.php (added)
-
public/stripe/lib/AlipayAccount.php (added)
-
public/stripe/lib/ApiOperations (added)
-
public/stripe/lib/ApiOperations/All.php (added)
-
public/stripe/lib/ApiOperations/Create.php (added)
-
public/stripe/lib/ApiOperations/Delete.php (added)
-
public/stripe/lib/ApiOperations/NestedResource.php (added)
-
public/stripe/lib/ApiOperations/Request.php (added)
-
public/stripe/lib/ApiOperations/Retrieve.php (added)
-
public/stripe/lib/ApiOperations/Update.php (added)
-
public/stripe/lib/ApiRequestor.php (added)
-
public/stripe/lib/ApiResource.php (added)
-
public/stripe/lib/ApiResponse.php (added)
-
public/stripe/lib/ApplePayDomain.php (added)
-
public/stripe/lib/ApplicationFee.php (added)
-
public/stripe/lib/ApplicationFeeRefund.php (added)
-
public/stripe/lib/Balance.php (added)
-
public/stripe/lib/BalanceTransaction.php (added)
-
public/stripe/lib/BankAccount.php (added)
-
public/stripe/lib/BitcoinReceiver.php (added)
-
public/stripe/lib/BitcoinTransaction.php (added)
-
public/stripe/lib/Capability.php (added)
-
public/stripe/lib/Card.php (added)
-
public/stripe/lib/Charge.php (added)
-
public/stripe/lib/Checkout (added)
-
public/stripe/lib/Checkout/Session.php (added)
-
public/stripe/lib/Collection.php (added)
-
public/stripe/lib/CountrySpec.php (added)
-
public/stripe/lib/Coupon.php (added)
-
public/stripe/lib/CreditNote.php (added)
-
public/stripe/lib/CreditNoteLineItem.php (added)
-
public/stripe/lib/Customer.php (added)
-
public/stripe/lib/CustomerBalanceTransaction.php (added)
-
public/stripe/lib/Discount.php (added)
-
public/stripe/lib/Dispute.php (added)
-
public/stripe/lib/EphemeralKey.php (added)
-
public/stripe/lib/ErrorObject.php (added)
-
public/stripe/lib/Event.php (added)
-
public/stripe/lib/Exception (added)
-
public/stripe/lib/Exception/ApiConnectionException.php (added)
-
public/stripe/lib/Exception/ApiErrorException.php (added)
-
public/stripe/lib/Exception/AuthenticationException.php (added)
-
public/stripe/lib/Exception/BadMethodCallException.php (added)
-
public/stripe/lib/Exception/CardException.php (added)
-
public/stripe/lib/Exception/ExceptionInterface.php (added)
-
public/stripe/lib/Exception/IdempotencyException.php (added)
-
public/stripe/lib/Exception/InvalidArgumentException.php (added)
-
public/stripe/lib/Exception/InvalidRequestException.php (added)
-
public/stripe/lib/Exception/OAuth (added)
-
public/stripe/lib/Exception/OAuth/ExceptionInterface.php (added)
-
public/stripe/lib/Exception/OAuth/InvalidClientException.php (added)
-
public/stripe/lib/Exception/OAuth/InvalidGrantException.php (added)
-
public/stripe/lib/Exception/OAuth/InvalidRequestException.php (added)
-
public/stripe/lib/Exception/OAuth/InvalidScopeException.php (added)
-
public/stripe/lib/Exception/OAuth/OAuthErrorException.php (added)
-
public/stripe/lib/Exception/OAuth/UnknownOAuthErrorException.php (added)
-
public/stripe/lib/Exception/OAuth/UnsupportedGrantTypeException.php (added)
-
public/stripe/lib/Exception/OAuth/UnsupportedResponseTypeException.php (added)
-
public/stripe/lib/Exception/PermissionException.php (added)
-
public/stripe/lib/Exception/RateLimitException.php (added)
-
public/stripe/lib/Exception/SignatureVerificationException.php (added)
-
public/stripe/lib/Exception/UnexpectedValueException.php (added)
-
public/stripe/lib/Exception/UnknownApiErrorException.php (added)
-
public/stripe/lib/ExchangeRate.php (added)
-
public/stripe/lib/File.php (added)
-
public/stripe/lib/FileLink.php (added)
-
public/stripe/lib/HttpClient (added)
-
public/stripe/lib/HttpClient/ClientInterface.php (added)
-
public/stripe/lib/HttpClient/CurlClient.php (added)
-
public/stripe/lib/Invoice.php (added)
-
public/stripe/lib/InvoiceItem.php (added)
-
public/stripe/lib/InvoiceLineItem.php (added)
-
public/stripe/lib/Issuing (added)
-
public/stripe/lib/Issuing/Authorization.php (added)
-
public/stripe/lib/Issuing/Card.php (added)
-
public/stripe/lib/Issuing/CardDetails.php (added)
-
public/stripe/lib/Issuing/Cardholder.php (added)
-
public/stripe/lib/Issuing/Dispute.php (added)
-
public/stripe/lib/Issuing/Transaction.php (added)
-
public/stripe/lib/LoginLink.php (added)
-
public/stripe/lib/Mandate.php (added)
-
public/stripe/lib/OAuth.php (added)
-
public/stripe/lib/OAuthErrorObject.php (added)
-
public/stripe/lib/Order.php (added)
-
public/stripe/lib/OrderItem.php (added)
-
public/stripe/lib/OrderReturn.php (added)
-
public/stripe/lib/PaymentIntent.php (added)
-
public/stripe/lib/PaymentMethod.php (added)
-
public/stripe/lib/Payout.php (added)
-
public/stripe/lib/Person.php (added)
-
public/stripe/lib/Plan.php (added)
-
public/stripe/lib/Product.php (added)
-
public/stripe/lib/Radar (added)
-
public/stripe/lib/Radar/EarlyFraudWarning.php (added)
-
public/stripe/lib/Radar/ValueList.php (added)
-
public/stripe/lib/Radar/ValueListItem.php (added)
-
public/stripe/lib/Recipient.php (added)
-
public/stripe/lib/RecipientTransfer.php (added)
-
public/stripe/lib/Refund.php (added)
-
public/stripe/lib/Reporting (added)
-
public/stripe/lib/Reporting/ReportRun.php (added)
-
public/stripe/lib/Reporting/ReportType.php (added)
-
public/stripe/lib/RequestTelemetry.php (added)
-
public/stripe/lib/Review.php (added)
-
public/stripe/lib/SKU.php (added)
-
public/stripe/lib/SetupIntent.php (added)
-
public/stripe/lib/Sigma (added)
-
public/stripe/lib/Sigma/ScheduledQueryRun.php (added)
-
public/stripe/lib/SingletonApiResource.php (added)
-
public/stripe/lib/Source.php (added)
-
public/stripe/lib/SourceTransaction.php (added)
-
public/stripe/lib/Stripe.php (added)
-
public/stripe/lib/StripeObject.php (added)
-
public/stripe/lib/Subscription.php (added)
-
public/stripe/lib/SubscriptionItem.php (added)
-
public/stripe/lib/SubscriptionSchedule.php (added)
-
public/stripe/lib/TaxId.php (added)
-
public/stripe/lib/TaxRate.php (added)
-
public/stripe/lib/Terminal (added)
-
public/stripe/lib/Terminal/ConnectionToken.php (added)
-
public/stripe/lib/Terminal/Location.php (added)
-
public/stripe/lib/Terminal/Reader.php (added)
-
public/stripe/lib/ThreeDSecure.php (added)
-
public/stripe/lib/Token.php (added)
-
public/stripe/lib/Topup.php (added)
-
public/stripe/lib/Transfer.php (added)
-
public/stripe/lib/TransferReversal.php (added)
-
public/stripe/lib/UsageRecord.php (added)
-
public/stripe/lib/UsageRecordSummary.php (added)
-
public/stripe/lib/Util (added)
-
public/stripe/lib/Util/CaseInsensitiveArray.php (added)
-
public/stripe/lib/Util/DefaultLogger.php (added)
-
public/stripe/lib/Util/LoggerInterface.php (added)
-
public/stripe/lib/Util/RandomGenerator.php (added)
-
public/stripe/lib/Util/RequestOptions.php (added)
-
public/stripe/lib/Util/Set.php (added)
-
public/stripe/lib/Util/Util.php (added)
-
public/stripe/lib/Webhook.php (added)
-
public/stripe/lib/WebhookEndpoint.php (added)
-
public/stripe/lib/WebhookSignature.php (added)
-
public/stripe/phpstan-baseline.neon (added)
-
public/stripe/phpstan.neon (added)
-
public/stripe/update_certs.php (added)
-
servicebot.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
servicebot/trunk/README.txt
r2196047 r2228151 23 23 * Customers can download Stripe invoices 24 24 * Subscription management portal can be used with Stripe Checkout 25 * Automatically create your Stripe customers as WordPress users with Stripe Webhooks 25 26 26 27 == Installation == -
servicebot/trunk/admin/class-servicebot-admin.php
r2196039 r2228151 63 63 64 64 //add_submenu_page( '$parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function ); 65 // add_submenu_page( $this->plugin_name, 'Plugin Name Settings', 'Settings', 'administrator', $this->plugin_name.'-settings', array( $this, 'displayPluginAdminSettings' ));65 add_submenu_page( $this->plugin_name, 'Servicebot Stripe Webhooks', 'Stripe Webhooks', 'administrator', $this->plugin_name.'-stripe-webhooks', array( $this, 'displayPluginAdminStripeWebhooks' )); 66 66 } 67 67 … … 74 74 } 75 75 require_once 'partials/'.$this->plugin_name.'-admin-display.php'; 76 } 77 78 public function displayPluginAdminStripeWebhooks() { 79 // set this var to be used in the settings-display view 80 $active_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : 'general'; 81 if(isset($_GET['error_message'])){ 82 add_action('admin_notices', array($this,'servicebotSettingsMessages')); 83 do_action( 'admin_notices', $_GET['error_message'] ); 84 } 85 require_once 'partials/'.$this->plugin_name.'-admin-stripe-webhooks.php'; 76 86 } 77 87 … … 103 113 'servicebot_general_section', 104 114 // Title to be displayed on the administration page 105 ' Servicebot EmbeddablesGlobal Settings',115 'Embeddable Global Settings', 106 116 // Callback used to render the description of the section 107 117 array( $this, 'servicebot_display_general_account' ), … … 294 304 ); 295 305 306 // Stripe webhooks section 307 add_settings_section( 308 // ID used to identify this section and with which to register options 309 'servicebot_stripe_webhooks_section', 310 // Title to be displayed on the administration page 311 '', 312 // Callback used to render the description of the section 313 array( $this, 'servicebot_display_stripe_webhooks' ), 314 // Page on which to add this section of options 315 'servicebot_stripe_webhooks_settings' 316 ); 317 318 unset($args); 319 $args = array ( 320 'type' => 'input', 321 'subtype' => 'text', 322 'id' => 'servicebot_servicebot_stripe_test_secret_key_setting', 323 'name' => 'servicebot_servicebot_stripe_test_secret_key_setting', 324 'required' => 'false', 325 'get_options_list' => '', 326 'value_type' => 'normal', 327 'wp_data' => 'option' 328 ); 329 add_settings_field( 330 'servicebot_servicebot_stripe_test_secret_key_setting', 331 'Stripe Test Secret Key', 332 array( $this, 'servicebot_render_settings_field' ), 333 'servicebot_stripe_webhooks_settings', 334 'servicebot_stripe_webhooks_section', 335 $args 336 ); 337 register_setting( 338 'servicebot_stripe_webhooks_settings', 339 'servicebot_servicebot_stripe_test_secret_key_setting' 340 ); 341 342 unset($args); 343 $args = array ( 344 'type' => 'input', 345 'subtype' => 'text', 346 'id' => 'servicebot_servicebot_stripe_live_secret_key_setting', 347 'name' => 'servicebot_servicebot_stripe_live_secret_key_setting', 348 'required' => 'false', 349 'get_options_list' => '', 350 'value_type' => 'normal', 351 'wp_data' => 'option' 352 ); 353 add_settings_field( 354 'servicebot_servicebot_stripe_live_secret_key_setting', 355 'Stripe Live Secret Key', 356 array( $this, 'servicebot_render_settings_field' ), 357 'servicebot_stripe_webhooks_settings', 358 'servicebot_stripe_webhooks_section', 359 $args 360 ); 361 register_setting( 362 'servicebot_stripe_webhooks_settings', 363 'servicebot_servicebot_stripe_live_secret_key_setting' 364 ); 365 366 unset($args); 367 $args = array ( 368 'type' => 'input', 369 'subtype' => 'text', 370 'id' => 'servicebot_servicebot_stripe_test_signing_secret_setting', 371 'name' => 'servicebot_servicebot_stripe_test_signing_secret_setting', 372 'required' => 'false', 373 'get_options_list' => '', 374 'value_type' => 'normal', 375 'wp_data' => 'option' 376 ); 377 add_settings_field( 378 'servicebot_servicebot_stripe_test_signing_secret_setting', 379 'Stripe Test Signing Secret', 380 array( $this, 'servicebot_render_settings_field' ), 381 'servicebot_stripe_webhooks_settings', 382 'servicebot_stripe_webhooks_section', 383 $args 384 ); 385 register_setting( 386 'servicebot_stripe_webhooks_settings', 387 'servicebot_servicebot_stripe_test_signing_secret_setting' 388 ); 389 390 unset($args); 391 $args = array ( 392 'type' => 'input', 393 'subtype' => 'text', 394 'id' => 'servicebot_servicebot_stripe_live_signing_secret_setting', 395 'name' => 'servicebot_servicebot_stripe_live_signing_secret_setting', 396 'required' => 'false', 397 'get_options_list' => '', 398 'value_type' => 'normal', 399 'wp_data' => 'option' 400 ); 401 add_settings_field( 402 'servicebot_servicebot_stripe_live_signing_secret_setting', 403 'Stripe Live Signing Secret', 404 array( $this, 'servicebot_render_settings_field' ), 405 'servicebot_stripe_webhooks_settings', 406 'servicebot_stripe_webhooks_section', 407 $args 408 ); 409 register_setting( 410 'servicebot_stripe_webhooks_settings', 411 'servicebot_servicebot_stripe_live_signing_secret_setting' 412 ); 413 296 414 } 297 415 298 416 public function servicebot_display_general_account() { 417 echo '<p></p>'; 418 } 419 420 public function servicebot_display_stripe_webhooks() { 299 421 echo '<p></p>'; 300 422 } -
servicebot/trunk/admin/partials/servicebot-admin-display.php
r2195968 r2228151 16 16 <!-- This file should primarily consist of HTML with a little bit of PHP. --> 17 17 <div class="wrap"> 18 <div id="icon-themes" class="icon32"></div> 19 <h2>Servicebot Settings</h2> 20 <!--NEED THE settings_errors below so that the errors/success messages are shown after submission - wasn't working once we started using add_menu_page and stopped using add_options_page so needed this--> 21 <?php settings_errors(); ?> 22 <form method="POST" action="options.php"> 23 <?php 24 settings_fields( 'servicebot_general_settings' ); 25 do_settings_sections( 'servicebot_general_settings' ); 26 ?> 27 <?php submit_button(); ?> 28 </form> 18 <div id="icon-themes" class="icon32"></div> 19 <h2>Servicebot Settings</h2> 20 <!--NEED THE settings_errors below so that the errors/success messages are shown after submission - wasn't working once we started using add_menu_page and stopped using add_options_page so needed this--> 21 <?php settings_errors(); ?> 22 <form method="POST" action="options.php"> 23 <section> 24 <?php 25 settings_fields( 'servicebot_general_settings' ); 26 do_settings_sections( 'servicebot_general_settings' ); 27 ?> 28 </section> 29 <?php submit_button(); ?> 30 </form> 29 31 </div> -
servicebot/trunk/public/class-servicebot-public.php
r2196039 r2228151 1 1 <?php 2 3 require_once 'stripe/init.php'; 4 use Stripe\Stripe; 5 use Stripe\Event; 6 use Stripe\Webhook; 2 7 3 8 /** … … 121 126 //On success 122 127 if ( ! is_wp_error( $user_id ) ) { 128 wp_new_user_notification( $user_id, null, 'both'); 123 129 wp_send_json( array( 'user_id' => $user_id, 124 130 'email' => $email, … … 127 133 'message' => 'User created successfully.' 128 134 ), 200 ); 129 wp_new_user_notification( $user_id, null, 'both');130 135 }else{ 131 136 wp_send_json_error( array( 'email' => $email, … … 136 141 } 137 142 138 } 139 add_action( 'wp_ajax_create_user', 'servicebot_ajax_create_user' ); 140 add_action( 'wp_ajax_nopriv_create_user', 'servicebot_ajax_create_user' ); 143 } 144 add_action( 'wp_ajax_create_user', 'servicebot_ajax_create_user' ); 145 add_action( 'wp_ajax_nopriv_create_user', 'servicebot_ajax_create_user' ); 146 147 148 149 function servicebot_webhook_listener() { 150 151 register_rest_route( 'servicebot/v1', '/stripe-hooks', array( 152 'methods' => 'POST' 153 ) ); 154 155 if ( $_SERVER['REQUEST_URI'] === '/servicebot/v1/stripe-hooks'){ 156 157 $live_mode = get_option('servicebot_servicebot_live_mode_global_setting') == 1 ? true : false; 158 if(!$live_mode){ 159 $stripe_sign_secret = get_option('servicebot_servicebot_stripe_test_signing_secret_setting'); 160 $stripe_secret_key = get_option('servicebot_servicebot_stripe_test_secret_key_setting'); 161 }else{ 162 $stripe_sign_secret = get_option('servicebot_servicebot_stripe_live_signing_secret_setting'); 163 $stripe_secret_key = get_option('servicebot_servicebot_stripe_live_secret_key_setting'); 164 } 165 166 Stripe::setApiKey($stripe_sign_secret); 167 $endpoint_secret = $stripe_sign_secret; 168 169 $payload = @file_get_contents( 'php://input' ); 170 $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE']; 171 $event = null; 172 173 try { 174 $event = Webhook::constructEvent( 175 $payload, $sig_header, $endpoint_secret 176 ); 177 } catch(\UnexpectedValueException $e) { 178 // Invalid payload 179 http_response_code(481); 180 exit(); 181 } catch(\Stripe\Exception\SignatureVerificationException $e) { 182 // Invalid signature 183 http_response_code(482); 184 exit(); 185 } 186 187 // Handle the event 188 switch ($event->type) { 189 case 'customer.created': 190 $customer = $event->data->object; 191 $email = sanitize_email( $customer->email ); 192 $userdata = array( 193 'user_login' => $email, 194 'user_email' => $email, 195 'role' => 'subscriber' 196 ); 197 $user_id = wp_insert_user( $userdata ); 198 199 if ( ! is_wp_error( $user_id ) ) { 200 wp_new_user_notification( $user_id, null, 'both'); 201 wp_send_json( array( 202 'user_id' => $user_id, 203 'email' => $email, 204 'password' => '*****', 205 'message' => 'User created successfully.' 206 ), 200 ); 207 }else{ 208 wp_send_json_error( array( 209 'email' => $email, 210 'name' => $name, 211 'password' => '*****', 212 'error' => 'Unable to create user.', 213 ), 500 ); 214 } 215 216 break; 217 case 'payment_method.attached': 218 $paymentMethod = $event->data->object; // contains a \Stripe\PaymentMethod 219 // Then define and call a method to handle the successful attachment of a PaymentMethod. 220 // handlePaymentMethodAttached($paymentMethod); 221 break; 222 // ... handle other event types 223 default: 224 // Unexpected event type 225 http_response_code(489); 226 exit(); 227 } 228 229 http_response_code(200); 230 } 231 } 232 233 add_action( 'init', 'servicebot_webhook_listener' ); -
servicebot/trunk/servicebot.php
r2196039 r2228151 17 17 * Plugin URI: http://www.wpexplorer.com/servicebot/ 18 18 * Description: This is a short description of what the plugin does. It's displayed in the WordPress admin area. 19 * Version: 1. 0.019 * Version: 1.1.0 20 20 * Author: Servicebot 21 21 * Author URI: https://servicebot.io … … 36 36 * Rename this for your plugin and update it as you release new versions. 37 37 */ 38 define( 'SERVICEBOT_VERSION', '1. 0.0' );38 define( 'SERVICEBOT_VERSION', '1.1.0' ); 39 39 40 40 /**
Note: See TracChangeset
for help on using the changeset viewer.