Changeset 3371879
- Timestamp:
- 10/02/2025 03:24:19 PM (5 months ago)
- Location:
- cryptapi-payment-gateway-for-woocommerce
- Files:
-
- 2 deleted
- 6 edited
- 53 copied
-
tags/5.1.4 (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk)
-
tags/5.1.4/CryptAPI.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/CryptAPI.php) (2 diffs)
-
tags/5.1.4/Initialize.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/Initialize.php)
-
tags/5.1.4/README.md (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/README.md) (1 diff)
-
tags/5.1.4/Register.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/Register.php)
-
tags/5.1.4/blocks (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/blocks)
-
tags/5.1.4/blocks/CryptAPI.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/blocks/CryptAPI.php) (1 diff)
-
tags/5.1.4/controllers/CryptAPI.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/controllers/CryptAPI.php) (2 diffs)
-
tags/5.1.4/define.php (deleted)
-
tags/5.1.4/emails/renewal-email.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/emails/renewal-email.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-de_DE.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-es_ES.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-fr_FR.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-it_IT.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_BR.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-pt_PT.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-ru_RU.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-uk.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-uk.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-uk.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-uk.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-uk.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-uk.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_CN.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_HK.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.l10n.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.l10n.php)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.mo (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.mo)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.po (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce-zh_TW.po)
-
tags/5.1.4/languages/cryptapi-payment-gateway-for-woocommerce.pot (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/languages/cryptapi-payment-gateway-for-woocommerce.pot)
-
tags/5.1.4/readme.txt (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/readme.txt) (2 diffs)
-
tags/5.1.4/static/blocks-styles.css (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/blocks-styles.css)
-
tags/5.1.4/static/blocks.js (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/blocks.js)
-
tags/5.1.4/static/cryptapi.css (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/cryptapi.css)
-
tags/5.1.4/static/files/ca_copy_icon.svg (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/files/ca_copy_icon.svg)
-
tags/5.1.4/static/files/ca_copy_icon_dark.svg (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/files/ca_copy_icon_dark.svg)
-
tags/5.1.4/static/files/ca_loader.svg (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/files/ca_loader.svg)
-
tags/5.1.4/static/payment.js (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/static/payment.js)
-
tags/5.1.4/utils/Api.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/utils/Api.php) (1 diff)
-
tags/5.1.4/utils/Helper.php (copied) (copied from cryptapi-payment-gateway-for-woocommerce/trunk/utils/Helper.php)
-
tags/5.1.4/utils/helper.php (deleted)
-
trunk/CryptAPI.php (modified) (2 diffs)
-
trunk/README.md (modified) (1 diff)
-
trunk/blocks/CryptAPI.php (modified) (1 diff)
-
trunk/controllers/CryptAPI.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/utils/Api.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/CryptAPI.php
r3329630 r3371879 4 4 Plugin URI: https://github.com/cryptapi/woocommerce-cryptapi 5 5 Description: Accept cryptocurrency payments on your WooCommerce website 6 Version: 5.1. 36 Version: 5.1.4 7 7 Requires at least: 5.8 8 Tested up to: 6.8. 28 Tested up to: 6.8.3 9 9 WC requires at least: 5.8 10 WC tested up to: 10. 0.210 WC tested up to: 10.2.2 11 11 Requires PHP: 7.2 12 12 Author: cryptapi … … 18 18 } 19 19 20 define('CRYPTAPI_PLUGIN_VERSION', '5.1. 3');20 define('CRYPTAPI_PLUGIN_VERSION', '5.1.4'); 21 21 define('CRYPTAPI_PLUGIN_PATH', plugin_dir_path(__FILE__)); 22 22 define('CRYPTAPI_PLUGIN_URL', plugin_dir_url(__FILE__)); -
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/README.md
r3329630 r3371879 418 418 * Minor bugfixes 419 419 420 #### 5.1.4 421 * Minor bugfixes 422 * Add a refresh coins option 423 420 424 ### Upgrade Notice 421 425 #### 4.3 -
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/blocks/CryptAPI.php
r3286205 r3371879 64 64 $output_coins = []; 65 65 66 foreach ($this->get_setting('coins') as $coin) { 67 $output_coins[] = array_merge( 68 ['ticker' => $coin], 69 $load_coins[$coin] 70 ); 66 if ($load_coins) { 67 foreach ($this->get_setting('coins') as $coin) { 68 $output_coins[] = array_merge( 69 ['ticker' => $coin], 70 $load_coins[$coin] 71 ); 72 } 71 73 } 72 74 -
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/controllers/CryptAPI.php
r3260984 r3371879 84 84 85 85 add_action('woocommerce_admin_order_data_after_order_details', array($this, 'order_detail_validate_logs')); 86 87 add_action('admin_post_cryptapi_refresh_coins', [$this, 'handle_admin_refresh_coins']); 86 88 } 87 89 88 90 function reset_load_coins() { 89 delete_transient('cryptapi_coins'); 90 self::load_coins(); 91 } 92 93 static function load_coins() 94 { 95 $transient = get_transient('cryptapi_coins'); 96 97 if (!empty($transient)) { 98 $coins = $transient; 99 } else { 91 $now = time(); 92 93 try { 100 94 $coins = \CryptAPI\Utils\Api::get_supported_coins(); 101 set_transient('cryptapi_coins', $coins, 86400);102 103 95 if (empty($coins)) { 104 throw new Exception(__('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.', 'cryptapi')); 105 } 106 } 107 108 # Disabling XMR since it is not supported anymore. 109 unset($coins['xmr']); 110 111 return $coins; 96 throw new Exception('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.'); 97 } 98 99 update_option('cryptapi_coins_cache', [ 100 'coins' => $coins, 101 'expires' => $now + 3600, 102 ], false); 103 } catch (Exception $e) { 104 // We don't want to reset the cache if we can't load the coins. 105 } 106 } 107 108 static function load_coins() { 109 $cache = get_option('cryptapi_coins_cache', []); 110 $now = time(); 111 112 try { 113 if (!empty($cache['coins']) && isset($cache['expires']) && $cache['expires'] > $now) { 114 $coins = $cache['coins']; 115 } else { 116 $coins = \CryptAPI\Utils\Api::get_supported_coins(); 117 118 if (empty($coins)) { 119 throw new Exception('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.'); 120 } 121 122 update_option('cryptapi_coins_cache', [ 123 'coins' => $coins, 124 'expires' => $now + 3600, 125 ], false); 126 } 127 128 if (isset($coins['xmr'])) { 129 unset($coins['xmr']); 130 } 131 132 return $coins; 133 } catch (Exception $e) { 134 if (!empty($cache['coins'])) { 135 return $cache['coins']; 136 } 137 return []; 138 } 139 } 140 141 public function handle_admin_refresh_coins() { 142 if ( ! current_user_can('manage_woocommerce') ) { 143 wp_die(__('You do not have permission to do this.', 'cryptapi')); 144 } 145 146 check_admin_referer('cryptapi_refresh_coins'); 147 148 $this->reset_load_coins(); 149 150 $back = wp_get_referer(); 151 if (!$back) { 152 $back = admin_url('admin.php?page=wc-settings&tab=checkout§ion=' . $this->id); 153 } 154 $back = add_query_arg('cryptapi_refreshed', '1', $back); 155 wp_safe_redirect($back); 156 exit; 112 157 } 113 158 … … 115 160 { 116 161 parent::admin_options(); 162 if (!empty($_GET['cryptapi_refreshed'])) { 163 echo '<div class="notice notice-success is-dismissible"><p>' . 164 esc_html__('Cryptocurrency cache refreshed successfully', 'cryptapi') . 165 '</p></div>'; 166 } 167 $refresh_url = wp_nonce_url( 168 admin_url('admin-post.php?action=cryptapi_refresh_coins'), 169 'cryptapi_refresh_coins' 170 ); 117 171 ?> 172 <div style="margin-top:1rem; display:flex; gap:.5rem; align-items:center; flex-wrap:wrap;"> 173 <a href="<?php echo esc_url($refresh_url); ?>" class="button button-secondary"> 174 <?php echo esc_html__('Refresh Cryptocurrencies', 'cryptapi'); ?> 175 </a> 176 <span class="description"> 177 <?php echo esc_html__('Update the cryptocurrency cache fetching the latest cryptocurrencies. Use this if there is a new token on CryptAPI and you can\'t find in the plugin.', 'cryptapi'); ?> 178 </span> 179 </div> 118 180 <div style='margin-top: 2rem;'> 119 181 <?php echo __("If you need any help or have any suggestion, contact us via the <b>live chat</b> on our <b><a href='https://cryptapi.io' target='_blank'>website</a></b> or join our <b><a href='https://discord.gg/cryptapi' target='_blank'>Discord server</a></b>", "cryptapi"); ?> -
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/readme.txt
r3329630 r3371879 3 3 Tags: crypto payments, woocommerce, payment gateway, crypto, payment, pay with crypto, payment request, bitcoin, bnb, usdt, ethereum, litecoin, bitcoin cash, shib, doge, solana 4 4 Requires at least: 5.8 5 Tested up to: 6.8. 26 Stable tag: 5.1. 35 Tested up to: 6.8.3 6 Stable tag: 5.1.4 7 7 Requires PHP: 7.2 8 8 WC requires at least: 5.8 9 WC tested up to: 10. 0.29 WC tested up to: 10.2.2 10 10 License: MIT 11 11 … … 416 416 * Minor bugfixes 417 417 418 = 5.1.4 = 419 * Minor bugfixes 420 * Add a refresh coins option 421 418 422 == Upgrade Notice == 419 423 -
cryptapi-payment-gateway-for-woocommerce/tags/5.1.4/utils/Api.php
r3257090 r3371879 283 283 for ($y = 0; $y < 5; $y++) { 284 284 try { 285 $response = json_decode(wp_remote_retrieve_body(wp_remote_get($url)), $assoc); 286 287 if (isset($response->status) && $response->status === 'error') { 285 $ch = curl_init(); 286 curl_setopt($ch, CURLOPT_URL, $url); 287 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 288 $response = curl_exec($ch); 289 curl_close($ch); 290 291 $response_json = json_decode($response, $assoc); 292 293 if (isset($response_json->status) && $response_json->status === 'error') { 288 294 // If API is giving error, no point is keeping retrying since result will be the same. 289 return $response ;295 return $response_json; 290 296 } 291 297 292 if ($assoc && !empty($response ['btc'])) {293 return $response ;298 if ($assoc && !empty($response_json['btc'])) { 299 return $response_json; 294 300 } 295 301 296 if ($response && $response->status === 'success') {297 return $response ;302 if ($response_json && $response_json->status === 'success') { 303 return $response_json; 298 304 } 299 305 } catch (Exception $e) { -
cryptapi-payment-gateway-for-woocommerce/trunk/CryptAPI.php
r3329630 r3371879 4 4 Plugin URI: https://github.com/cryptapi/woocommerce-cryptapi 5 5 Description: Accept cryptocurrency payments on your WooCommerce website 6 Version: 5.1. 36 Version: 5.1.4 7 7 Requires at least: 5.8 8 Tested up to: 6.8. 28 Tested up to: 6.8.3 9 9 WC requires at least: 5.8 10 WC tested up to: 10. 0.210 WC tested up to: 10.2.2 11 11 Requires PHP: 7.2 12 12 Author: cryptapi … … 18 18 } 19 19 20 define('CRYPTAPI_PLUGIN_VERSION', '5.1. 3');20 define('CRYPTAPI_PLUGIN_VERSION', '5.1.4'); 21 21 define('CRYPTAPI_PLUGIN_PATH', plugin_dir_path(__FILE__)); 22 22 define('CRYPTAPI_PLUGIN_URL', plugin_dir_url(__FILE__)); -
cryptapi-payment-gateway-for-woocommerce/trunk/README.md
r3329630 r3371879 418 418 * Minor bugfixes 419 419 420 #### 5.1.4 421 * Minor bugfixes 422 * Add a refresh coins option 423 420 424 ### Upgrade Notice 421 425 #### 4.3 -
cryptapi-payment-gateway-for-woocommerce/trunk/blocks/CryptAPI.php
r3286205 r3371879 64 64 $output_coins = []; 65 65 66 foreach ($this->get_setting('coins') as $coin) { 67 $output_coins[] = array_merge( 68 ['ticker' => $coin], 69 $load_coins[$coin] 70 ); 66 if ($load_coins) { 67 foreach ($this->get_setting('coins') as $coin) { 68 $output_coins[] = array_merge( 69 ['ticker' => $coin], 70 $load_coins[$coin] 71 ); 72 } 71 73 } 72 74 -
cryptapi-payment-gateway-for-woocommerce/trunk/controllers/CryptAPI.php
r3260984 r3371879 84 84 85 85 add_action('woocommerce_admin_order_data_after_order_details', array($this, 'order_detail_validate_logs')); 86 87 add_action('admin_post_cryptapi_refresh_coins', [$this, 'handle_admin_refresh_coins']); 86 88 } 87 89 88 90 function reset_load_coins() { 89 delete_transient('cryptapi_coins'); 90 self::load_coins(); 91 } 92 93 static function load_coins() 94 { 95 $transient = get_transient('cryptapi_coins'); 96 97 if (!empty($transient)) { 98 $coins = $transient; 99 } else { 91 $now = time(); 92 93 try { 100 94 $coins = \CryptAPI\Utils\Api::get_supported_coins(); 101 set_transient('cryptapi_coins', $coins, 86400);102 103 95 if (empty($coins)) { 104 throw new Exception(__('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.', 'cryptapi')); 105 } 106 } 107 108 # Disabling XMR since it is not supported anymore. 109 unset($coins['xmr']); 110 111 return $coins; 96 throw new Exception('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.'); 97 } 98 99 update_option('cryptapi_coins_cache', [ 100 'coins' => $coins, 101 'expires' => $now + 3600, 102 ], false); 103 } catch (Exception $e) { 104 // We don't want to reset the cache if we can't load the coins. 105 } 106 } 107 108 static function load_coins() { 109 $cache = get_option('cryptapi_coins_cache', []); 110 $now = time(); 111 112 try { 113 if (!empty($cache['coins']) && isset($cache['expires']) && $cache['expires'] > $now) { 114 $coins = $cache['coins']; 115 } else { 116 $coins = \CryptAPI\Utils\Api::get_supported_coins(); 117 118 if (empty($coins)) { 119 throw new Exception('No cryptocurrencies available at the moment. Please choose a different payment method or try again later.'); 120 } 121 122 update_option('cryptapi_coins_cache', [ 123 'coins' => $coins, 124 'expires' => $now + 3600, 125 ], false); 126 } 127 128 if (isset($coins['xmr'])) { 129 unset($coins['xmr']); 130 } 131 132 return $coins; 133 } catch (Exception $e) { 134 if (!empty($cache['coins'])) { 135 return $cache['coins']; 136 } 137 return []; 138 } 139 } 140 141 public function handle_admin_refresh_coins() { 142 if ( ! current_user_can('manage_woocommerce') ) { 143 wp_die(__('You do not have permission to do this.', 'cryptapi')); 144 } 145 146 check_admin_referer('cryptapi_refresh_coins'); 147 148 $this->reset_load_coins(); 149 150 $back = wp_get_referer(); 151 if (!$back) { 152 $back = admin_url('admin.php?page=wc-settings&tab=checkout§ion=' . $this->id); 153 } 154 $back = add_query_arg('cryptapi_refreshed', '1', $back); 155 wp_safe_redirect($back); 156 exit; 112 157 } 113 158 … … 115 160 { 116 161 parent::admin_options(); 162 if (!empty($_GET['cryptapi_refreshed'])) { 163 echo '<div class="notice notice-success is-dismissible"><p>' . 164 esc_html__('Cryptocurrency cache refreshed successfully', 'cryptapi') . 165 '</p></div>'; 166 } 167 $refresh_url = wp_nonce_url( 168 admin_url('admin-post.php?action=cryptapi_refresh_coins'), 169 'cryptapi_refresh_coins' 170 ); 117 171 ?> 172 <div style="margin-top:1rem; display:flex; gap:.5rem; align-items:center; flex-wrap:wrap;"> 173 <a href="<?php echo esc_url($refresh_url); ?>" class="button button-secondary"> 174 <?php echo esc_html__('Refresh Cryptocurrencies', 'cryptapi'); ?> 175 </a> 176 <span class="description"> 177 <?php echo esc_html__('Update the cryptocurrency cache fetching the latest cryptocurrencies. Use this if there is a new token on CryptAPI and you can\'t find in the plugin.', 'cryptapi'); ?> 178 </span> 179 </div> 118 180 <div style='margin-top: 2rem;'> 119 181 <?php echo __("If you need any help or have any suggestion, contact us via the <b>live chat</b> on our <b><a href='https://cryptapi.io' target='_blank'>website</a></b> or join our <b><a href='https://discord.gg/cryptapi' target='_blank'>Discord server</a></b>", "cryptapi"); ?> -
cryptapi-payment-gateway-for-woocommerce/trunk/readme.txt
r3329630 r3371879 3 3 Tags: crypto payments, woocommerce, payment gateway, crypto, payment, pay with crypto, payment request, bitcoin, bnb, usdt, ethereum, litecoin, bitcoin cash, shib, doge, solana 4 4 Requires at least: 5.8 5 Tested up to: 6.8. 26 Stable tag: 5.1. 35 Tested up to: 6.8.3 6 Stable tag: 5.1.4 7 7 Requires PHP: 7.2 8 8 WC requires at least: 5.8 9 WC tested up to: 10. 0.29 WC tested up to: 10.2.2 10 10 License: MIT 11 11 … … 416 416 * Minor bugfixes 417 417 418 = 5.1.4 = 419 * Minor bugfixes 420 * Add a refresh coins option 421 418 422 == Upgrade Notice == 419 423 -
cryptapi-payment-gateway-for-woocommerce/trunk/utils/Api.php
r3257090 r3371879 283 283 for ($y = 0; $y < 5; $y++) { 284 284 try { 285 $response = json_decode(wp_remote_retrieve_body(wp_remote_get($url)), $assoc); 286 287 if (isset($response->status) && $response->status === 'error') { 285 $ch = curl_init(); 286 curl_setopt($ch, CURLOPT_URL, $url); 287 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 288 $response = curl_exec($ch); 289 curl_close($ch); 290 291 $response_json = json_decode($response, $assoc); 292 293 if (isset($response_json->status) && $response_json->status === 'error') { 288 294 // If API is giving error, no point is keeping retrying since result will be the same. 289 return $response ;295 return $response_json; 290 296 } 291 297 292 if ($assoc && !empty($response ['btc'])) {293 return $response ;298 if ($assoc && !empty($response_json['btc'])) { 299 return $response_json; 294 300 } 295 301 296 if ($response && $response->status === 'success') {297 return $response ;302 if ($response_json && $response_json->status === 'success') { 303 return $response_json; 298 304 } 299 305 } catch (Exception $e) {
Note: See TracChangeset
for help on using the changeset viewer.