PluginProbe
Datafeedr API / 1.4.3
Datafeedr API v1.4.3
1.4.3 1.4.2 1.0.125 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.3 1.0.30 1.0.31 1.0.32 All 182 releases
← All changes | classes/class-dfrapi-tools.php +74 -54 1.0.14 → 1.4.3 View file →
@@ -14,28 +14,26 @@
14 14
15 15 public function __construct() {
16 16 $this->key = 'dfrapi_tools';
17 17 add_action( 'admin_init', array( &$this, 'register_settings' ) );
18 - add_action( 'admin_menu', array( $this, 'admin_menu' ) );
19 - add_action( 'admin_notices', array( $this, 'admin_notice' ) );
18 + add_action( 'admin_menu', array( $this, 'admin_menu' ), 40 );
19 + add_action( 'admin_notices', array( $this, 'admin_notice' ) );
20 20 }
21 -
21 +
22 22 function admin_menu() {
23 23 add_submenu_page(
24 24 'dfrapi',
25 - __( 'Tools — Datafeedr API', DFRAPI_DOMAIN ),
26 - __( 'Tools', DFRAPI_DOMAIN ),
27 - 'manage_options',
25 + __( 'Tools — Datafeedr API', 'datafeedr-api' ),
26 + __( 'Tools', 'datafeedr-api' ),
27 + 'manage_options',
28 28 $this->key,
29 - array( $this, 'output' )
29 + array( $this, 'output' )
30 30 );
31 31 }
32 -
32 +
33 33 function admin_notice() {
34 34 if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] == true && isset( $_GET['page'] ) && $this->key == $_GET['page'] ) {
35 - echo '<div class="updated"><p>';
36 - _e( 'Updated!', DFRAPI_DOMAIN );
37 - echo '</p></div>';
35 + dfrapi_admin_notice( __( 'Updated!', 'datafeedr-api' ), 'success' );
38 36 }
39 37 }
40 38
41 39 function output() {
@@ -40,62 +38,84 @@
40 38
41 39 function output() {
42 40 echo '<div class="wrap" id="' . $this->key . '">';
43 41 echo '<h2>' . dfrapi_setting_pages( $this->page ) . ' &#8212; Datafeedr API</h2>';
44 - echo '<form method="post" action="options.php">';
45 - wp_nonce_field( 'update-options' );
42 + ?>
43 +
44 + <script>
45 + jQuery(function($) {
46 +
47 + $('#dfrapi_delete_cached_api_data').on('click',function(e) {
48 + $("#dfrapi_delete_cached_api_data_result").hide();
49 + $("#dfrapi_delete_cached_api_data").text('<?php _e("Deleting...", 'datafeedr-api'); ?>').addClass('button-disabled');
50 + $.ajax({
51 + type: "POST",
52 + url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
53 + data: {
54 + action: "dfrapi_delete_cached_api_data",
55 + dfrapi_security: "<?php echo wp_create_nonce( 'dfrapi_ajax_nonce' ); ?>"
56 + }
57 + }).done(function(html) {
58 + $("#dfrapi_delete_cached_api_data").text('<?php _e("Delete Cached API Data", 'datafeedr-api'); ?>').removeClass('button-disabled');
59 + $("#dfrapi_delete_cached_api_data_result").show().html(html);
60 +
61 + });
62 + e.preventDefault();
63 + }); // $('#dfrapi_delete_cached_api_data').on('click',function(e) {
64 +
65 + $('#dfrapi_test_api_connection').on('click',function(e) {
66 + $("#dfrapi_test_api_connection_result").hide();
67 + $("#dfrapi_test_api_connection").text('<?php _e("Testing...", 'datafeedr-api'); ?>').addClass('button-disabled');
68 + $.ajax({
69 + type: "POST",
70 + url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
71 + data: {
72 + action: "dfrapi_test_api_connection",
73 + dfrapi_security: "<?php echo wp_create_nonce( 'dfrapi_ajax_nonce' ); ?>"
74 + }
75 + }).done(function(html) {
76 + $("#dfrapi_test_api_connection").text('<?php _e("Test Connection", 'datafeedr-api'); ?>').removeClass('button-disabled');
77 + $("#dfrapi_test_api_connection_result").show().html(html);
78 +
79 + });
80 + e.preventDefault();
81 + }); // $('#dfrapi_delete_cached_api_data').on('click',function(e) {
82 +
83 + }); // jQuery(function($) {
84 + </script>
85 +
86 + <?php
87 +
46 88 settings_fields( $this->page );
47 89 do_settings_sections( $this->page);
48 - submit_button();
49 - echo '</form>';
50 90 echo '</div>';
51 91 }
52 -
92 +
53 93 function register_settings() {
54 - register_setting( $this->page, $this->key, array( $this, 'validate' ) );
55 -
56 - // Delete transient data.
57 - add_settings_section( 'delete_transient_data', __( 'Delete Cached API Data', DFRAPI_DOMAIN ), array( &$this, 'section_delete_transient_data_desc' ), $this->page );
58 - add_settings_field( 'delete_transient_data_checkbox', __( 'Delete Cached API Data', DFRAPI_DOMAIN ), array( &$this, 'field_delete_transient_data_checkbox' ), $this->page, 'delete_transient_data' );
94 +
95 + add_settings_section( 'test_connection', __( 'Test API Connection', 'datafeedr-api' ), array( &$this, 'section_test_connection_desc' ), $this->page );
96 + add_settings_section( 'delete_transient_data', __( 'Delete Cached API Data', 'datafeedr-api' ), array( &$this, 'section_delete_transient_data_desc' ), $this->page );
59 97 }
60 -
61 - function section_delete_transient_data_desc() {
62 - echo __( 'Select <strong>Yes</strong> below and click <strong>[Save Changes]</strong> to delete all cached API data. Deleting cached data will not affect your store, however, it will require multiple API requests in order to re-build the data. Typically, you only delete cached data when Datafeedr Support instructs you to do so.', DFRAPI_DOMAIN );
98 +
99 + function section_delete_transient_data_desc() { ?>
100 + <p><?php _e( 'Deleting cached data will not affect your store, however, it will require multiple API requests in order to re-build the data. Typically, you only delete cached data when Datafeedr Support instructs you to do so.', 'datafeedr-api' ); ?></p>
101 + <p><a href="#" id="dfrapi_delete_cached_api_data" class="button"><?php _e("Delete Cached API Data", 'datafeedr-api'); ?></a></p>
102 + <div id="dfrapi_delete_cached_api_data_result" style="padding: 10px; border: 1px solid silver; display: none; background: #FFF; color: green;"></div>
103 + <hr />
104 + <?php
63 105 }
64 106
65 - function field_delete_transient_data_checkbox() {
66 - ?>
67 - <input type="checkbox" name="<?php echo $this->key; ?>[delete_transient_data_checkbox]" value="on" /> <?php _e( 'Yes', DFRAPI_DOMAIN ); ?>
107 + function section_test_connection_desc() { ?>
108 + <p><?php _e( 'Test your web server\'s connection to the Datafeedr API servers. This will not count against your overall API request count.', 'datafeedr-api' ); ?></p>
109 + <p><a href="#" id="dfrapi_test_api_connection" class="button"><?php _e("Test Connection", 'datafeedr-api'); ?></a></p>
110 + <div id="dfrapi_test_api_connection_result" style="padding: 10px; border: 1px solid silver; display: none; background: #FFF;"></div>
111 + <hr />
68 112 <?php
69 113 }
70 -
114 +
71 115 function validate( $input ) {
72 -
73 - if ( !isset( $input ) || !is_array( $input ) || empty( $input ) ) { return $input; }
74 -
75 - foreach( $input as $key => $value ) {
76 -
77 - // Delete transient data.
78 - if ( $key == 'delete_transient_data_checkbox' && $value == 'on' ) {
79 - // Only delete if user has API requests remaining. This is because we'll need to make 1 request to rebuild 'dfrapi_account'.
80 - $status = dfrapi_api_get_status();
81 - if ( !array_key_exists( 'dfrapi_api_error', $status ) ) {
82 - delete_option( 'dfrapi_account' );
83 - $transient_options = get_option( 'dfrapi_transient_whitelist' );
84 - if ( !empty( $transient_options ) ) {
85 - foreach ( $transient_options as $name ) {
86 - delete_transient( $name );
87 - }
88 - }
89 - // Update account status immediately in case there are not enough API
90 - // requests remaining in order to do so later.
91 - $status = dfrapi_api_get_status();
92 - update_option( 'dfrapi_account', $status );
93 - }
94 - } // END Delete transient data.
95 -
96 - } // END foreach( $input as $key => $value ) {
116 + return $input;
97 117 }
98 -
118 +
99 119 } // class Dfrapi_Tools
100 120
101 121 } // class_exists check