PATH:
home
/
letacommog
/
broderie
/
wp-content
/
plugins
/
woocommerce-services
/
classes
<?php if ( ! class_exists( 'WC_Connect_Payment_Methods_Store' ) ) { class WC_Connect_Payment_Methods_Store { /** * @var WC_Connect_Service_Settings_Store */ protected $service_settings_store; /** * @var WC_Connect_API_Client */ protected $api_client; /** * @var WC_Connect_Logger */ protected $logger; public function __construct( WC_Connect_Service_Settings_Store $service_settings_store, WC_Connect_API_Client $api_client, WC_Connect_Logger $logger ) { $this->service_settings_store = $service_settings_store; $this->api_client = $api_client; $this->logger = $logger; } /** * Fetch stored payment methods from server and store in options. * * @return bool Were payment methods successfully retrieved? */ public function fetch_payment_methods_from_connect_server() { $response_body = $this->api_client->get_payment_methods(); if ( is_wp_error( $response_body ) ) { $this->logger->log( $response_body, __FUNCTION__ ); return false; } $payment_methods = $this->get_payment_methods_from_response_body( $response_body ); if ( is_wp_error( $payment_methods ) ) { $this->logger->log( $payment_methods, __FUNCTION__ ); return false; } // If we made it this far, it is safe to store the object $this->update_payment_methods( $payment_methods ); $this->potentially_update_selected_payment_method_from_payment_methods( $payment_methods ); return true; } protected function potentially_update_selected_payment_method_from_payment_methods( $payment_methods ) { $payment_method_ids = array(); foreach ( (array) $payment_methods as $payment_method ) { $payment_method_id = intval( $payment_method->payment_method_id ); if ( 0 !== $payment_method_id ) { $payment_method_ids[] = $payment_method_id; } } // No payment methods at all? Clear anything we have stored if ( 0 === count( $payment_method_ids ) ) { $this->service_settings_store->set_selected_payment_method_id( 0 ); return; } // Has the stored method ID been removed, or is there only one available? Select the first available one $selected_payment_method_id = $this->service_settings_store->get_selected_payment_method_id(); if ( ( $selected_payment_method_id || 1 === count( $payment_method_ids ) ) && ! in_array( $selected_payment_method_id, $payment_method_ids ) ) { $this->service_settings_store->set_selected_payment_method_id( $payment_method_ids[ 0 ] ); } } public function get_payment_methods() { return WC_Connect_Options::get_option( 'payment_methods', array() ); } protected function update_payment_methods( $payment_methods ) { WC_Connect_Options::update_option( 'payment_methods', $payment_methods ); } protected function get_payment_methods_from_response_body( $response_body ) { if ( ! is_object( $response_body ) ) { return new WP_Error( 'payment_method_response_body_type', 'Expected but did not receive object for response body.' ); } if ( ! property_exists( $response_body, 'payment_methods' ) ) { return new WP_Error( 'payment_method_response_body_missing_payment_methods', 'Expected but did not receive payment_methods in response body.' ); } $payment_methods = $response_body->payment_methods; if ( ! is_array( $payment_methods ) ) { return new WP_Error( 'payment_methods_type', 'Expected but did not receive array for payment_methods.' ); } foreach ( $payment_methods as $payment_method ) { $required_keys = array( 'payment_method_id', 'name', 'card_type', 'card_digits', 'expiry' ); foreach ( $required_keys as $required_key ) { if ( ! property_exists( $payment_method, $required_key ) ) { return new WP_Error( 'payment_methods_key_missing', 'Payment method is missing a required property' ); } } } return $payment_methods; } } }
[+]
..
[-] class-wc-connect-paypal-ec.php
[edit]
[-] class-wc-rest-connect-address-normalization-controller.php
[edit]
[-] class-wc-connect-settings-pages.php
[edit]
[-] class-wc-rest-connect-shipping-label-controller.php
[edit]
[-] class-wc-connect-error-notice.php
[edit]
[-] class-wc-rest-connect-shipping-label-preview-controller.php
[edit]
[-] class-wc-rest-connect-subscription-activate-controller.php
[edit]
[-] class-wc-connect-package-settings.php
[edit]
[-] class-wc-rest-connect-services-controller.php
[edit]
[-] class-wc-connect-continents.php
[edit]
[-] class-wc-rest-connect-self-help-controller.php
[edit]
[-] class-wc-connect-jetpack.php
[edit]
[-] class-wc-rest-connect-shipping-label-print-controller.php
[edit]
[-] class-wc-connect-debug-tools.php
[edit]
[-] class-wc-connect-taxjar-integration.php
[edit]
[-] class-wc-rest-connect-shipping-carriers-controller.php
[edit]
[-] class-wc-connect-extension-compatibility.php
[edit]
[-] class-wc-rest-connect-tos-controller.php
[edit]
[-] class-wc-connect-help-view.php
[edit]
[+]
wc-api-dev
[-] class-wc-connect-shipping-method.php
[edit]
[-] class-wc-connect-payment-gateway.php
[edit]
[-] class-wc-connect-api-client.php
[edit]
[-] class-wc-connect-payment-methods-store.php
[edit]
[-] class-wc-connect-shipping-label.php
[edit]
[-] class-wc-rest-connect-assets-controller.php
[edit]
[-] class-wc-rest-connect-shipping-carrier-delete-controller.php
[edit]
[-] class-wc-rest-connect-base-controller.php
[edit]
[-] class-wc-connect-compatibility-wc30.php
[edit]
[-] class-wc-connect-functions.php
[edit]
[-] class-wc-rest-connect-shipping-label-status-controller.php
[edit]
[-] class-wc-connect-logger.php
[edit]
[-] class-wc-connect-service-schemas-store.php
[edit]
[-] class-wc-connect-service-settings-store.php
[edit]
[-] class-wc-connect-account-settings.php
[edit]
[-] class-wc-connect-options.php
[edit]
[-] class-wc-rest-connect-shipping-carrier-types-controller.php
[edit]
[-] class-wc-connect-compatibility-wc26.php
[edit]
[-] class-wc-rest-connect-shipping-rates-controller.php
[edit]
[-] class-wc-connect-nux.php
[edit]
[-] class-wc-connect-compatibility.php
[edit]
[-] class-wc-connect-tracks.php
[edit]
[-] class-wc-rest-connect-shipping-label-refund-controller.php
[edit]
[-] class-wc-connect-label-reports.php
[edit]
[-] class-wc-rest-connect-packages-controller.php
[edit]
[-] class-wc-rest-connect-subscriptions-controller.php
[edit]
[-] class-wc-connect-privacy.php
[edit]
[-] class-wc-connect-order-presenter.php
[edit]
[-] class-wc-rest-connect-account-settings-controller.php
[edit]
[-] class-wc-rest-connect-shipping-carrier-controller.php
[edit]
[-] class-wc-connect-service-schemas-validator.php
[edit]
[-] class-wc-connect-api-client-live.php
[edit]