wpsslc_google_api(); } /** * Main WPSSLC_Plugin_Settings Instance. * * @since 1.0.0 * * @return instance */ public static function instance() { if ( null === self::$instance ) { self::$instance = new self(); } return self::$instance; } /** * Get an instance of WPSSLC_Google_API_Functions class. * * @return WPSSLC_Google_API_Functions class instance */ public static function wpsslc_google_api() { if ( null === self::$instance_api ) { self::$instance_api = new WPSSLC_Google_API_Functions(); } return self::$instance_api; } /** * WPSSLC Plugin Activation Hook */ public function wpsslc_activation() { update_option( 'active_contactsheets', 1 ); } /** * WPSSLC Plugin Deactivation Hook */ public function wpsslc_deactivation() { update_option( 'active_contactsheets', '' ); } /** * Register a plugin menu page. */ public function wpsslc_menu_page() { global $admin_page_hooks, $_parent_pages; if ( ! isset( $admin_page_hooks['wpsyncsheets_lite'] ) ) { $wpsslc_page = add_menu_page( esc_attr__( 'WPSyncSheets Lite', 'wpssc' ), 'WPSyncSheets Lite', 'manage_options', 'wpsyncsheets_lite', '', WPSSLC_URL . 'assets/images/menu-icon.svg', 90 ); } add_submenu_page( 'wpsyncsheets_lite', 'WPSyncSheets Lite For Contact Form 7', 'For Contact Form 7', 'manage_options', 'wpsyncsheets-contact-form-7', array( $this, 'wpsslc_plugin_page' ), 1 ); if ( ! isset( $_parent_pages['documentation'] ) ) { add_submenu_page( 'wpsyncsheets_lite', 'Documentation', '
Documentation
', 'manage_options', 'documentation', array( $this, 'wpsslc_handle_external_redirects' ), 20 ); } $this->remove_duplicate_submenu_page(); } /** * Documentation and Support Page Link. * * Redirect the documentation and support page. * * @since 1.0.0 * @access public */ public function wpsslc_handle_external_redirects() { // phpcs:ignore if ( empty( $_GET['page'] ) ) { return; } // phpcs:ignore if ( 'documentation' === $_GET['page'] ) { // phpcs:ignore wp_redirect( WPSSLC_DOC_MENU_URL ); die; } } /** * Remove duplicate submenu * Submenu page hack: Remove the duplicate WPSyncSheets Plugin link on subpages */ public function remove_duplicate_submenu_page() { remove_submenu_page( 'wpsyncsheets_lite', 'wpsyncsheets_lite' ); } /** * Enqueue css and js files */ public static function wpsslc_load_custom_wp_admin_style() { // @codingStandardsIgnoreStart. if ( is_admin() && ( isset( $_GET['page'] ) && ( ( 'wpcf7' === sanitize_text_field( wp_unslash( $_GET['page'] ) ) ) || ( 'wpsyncsheets-contact-form-7' === sanitize_text_field( wp_unslash( $_GET['page'] ) ) ) || ( 'wpcf7-new' === sanitize_text_field( wp_unslash( $_GET['page'] ) ) ) ) ) ) { // @codingStandardsIgnoreEnd. wp_enqueue_script( 'wpsslc-admin-setting', WPSSLC_URL . 'assets/js/wpsslc-admin-setting.js', WPSSLC_VERSION, true, false ); wp_localize_script( 'wpsslc-admin-setting', 'ajax_login_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); wp_enqueue_style( 'wpsslc-admin-setting', WPSSLC_URL . 'assets/css/wpsslc-admin-setting.css', WPSSLC_VERSION, true ); } } /** * Enqueue css and js files */ public function wpsslc_selectively_enqueue_admin_script() { wp_enqueue_script( 'wpsslc-general-script', WPSSLC_URL . 'assets/js/wpsslc-general.js', WPSSLC_VERSION, true, false ); } /** * Show row meta on the plugin screen. * * @param mixed $wpsslc_links Plugin Row Meta. * @param mixed $wpsslc_file Plugin Base file. * @return array */ public static function wpsslc_plugin_row_meta( $wpsslc_links, $wpsslc_file ) { if ( 'contactsheets-lite/wpsyncsheets-lite-contact-form-7.php' === (string) $wpsslc_file ) { $wpsslc_row_meta = array( 'docs' => '' . __( 'View Documentation', 'wpssc' ) . '', ); return array_merge( $wpsslc_links, $wpsslc_row_meta ); } return (array) $wpsslc_links; } /** * Pugin settings page */ public static function wpsslc_plugin_page() { $wpsslc_error = ''; // Google API Settings Tab. if ( isset( $_POST['submit'] ) ) { if ( isset( $_POST['client_token'] ) ) { $wpsslc_clienttoken = sanitize_text_field( wp_unslash( $_POST['client_token'] ) ); } else { $wpsslc_clienttoken = ''; } if ( isset( $_POST['client_id'] ) && isset( $_POST['client_secret'] ) ) { $wpsslc_google_settings = array( sanitize_text_field( wp_unslash( $_POST['client_id'] ) ), sanitize_text_field( wp_unslash( $_POST['client_secret'] ) ), $wpsslc_clienttoken ); } else { $wpsslc_google_settings_value = self::$instance_api->wpsslc_option( 'wpssc_google_settings' ); $wpsslc_google_settings = array( $wpsslc_google_settings_value[0], $wpsslc_google_settings_value[1], $wpsslc_clienttoken ); } self::$instance_api->wpsslc_update_option( 'wpssc_google_settings', $wpsslc_google_settings ); } if ( isset( $_POST['revoke'] ) ) { if ( ! isset( $_POST['wpsslc_api_settings'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['wpsslc_api_settings'] ) ), 'save_api_settings' ) ) { $wpsslc_error = '' . esc_html__( 'Error: Sorry, your nonce did not verify.', 'wpssc' ) . ''; } else { $wpsslc_google_settings = self::$instance_api->wpsslc_option( 'wpssc_google_settings' ); $wpsslc_google_settings[2] = ''; self::$instance_api->wpsslc_update_option( 'wpssc_google_settings', $wpsslc_google_settings ); self::$instance_api->wpsslc_update_option( 'wpssc_google_accessToken', '' ); } } $wpsslc_google_settings_value = self::$instance_api->wpsslc_option( 'wpssc_google_settings' ); if ( isset( $wpsslc_google_settings_value[2] ) && ! empty( $wpsslc_google_settings_value[2] ) ) { if ( ! self::$instance_api->getClient() ) { $wpsslc_error = self::$instance_api->getClient( 1 ); if ( 'Invalid token format' === (string) $wpsslc_error || 'invalid_grant' === (string) $wpsslc_error ) { $wpsslc_error = '

' . esc_html__( 'Error: Invalid Token - Revoke Token with below settings and try again.', 'wpssc' ) . '

'; } else { $wpsslc_error = '

Error: ' . $wpsslc_error . '

'; } } } ?>
V

.


/>

/>

getClient(); ?>

class="wpsslc-authtext" > />

     

Copy
Copy