get_error_message(), 'error' ); } else { add_settings_error( 'ftcon_google_ads', 'oauth_success', __( 'Google Ads connected successfully! Now enter your Customer ID below.', 'forge-trueconversion' ), 'success' ); } return; } // Handle OAuth error return. if ( isset( $_GET['error'] ) && isset( $_GET['state'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification $error = sanitize_text_field( wp_unslash( $_GET['error'] ) ); // phpcs:ignore WordPress.Security.NonceVerification add_settings_error( 'ftcon_google_ads', 'oauth_error', $error, 'error' ); return; } // Handle disconnect. if ( isset( $_POST['ftcon_gads_disconnect'] ) ) { check_admin_referer( 'ftcon_gads_disconnect' ); FTCON_Google_Ads::disconnect(); // Also clear customer ID and conversion action. update_option( 'ftcon_gads_customer_id', '' ); update_option( 'ftcon_gads_conversion_action_id', '' ); add_settings_error( 'ftcon_google_ads', 'disconnected', __( 'Google Ads disconnected.', 'forge-trueconversion' ), 'success' ); return; } // Handle save customer ID. if ( isset( $_POST['ftcon_gads_save_customer_id'] ) ) { check_admin_referer( 'ftcon_gads_customer_id' ); $customer_id = isset( $_POST['ftcon_gads_customer_id'] ) ? sanitize_text_field( wp_unslash( $_POST['ftcon_gads_customer_id'] ) ) : ''; if ( empty( $customer_id ) ) { add_settings_error( 'ftcon_google_ads', 'saved', __( 'Empty Customer ID', 'forge-trueconversion' ), 'error' ); return; } $customer_id = preg_replace( '/[^0-9\-]/', '', $customer_id ); update_option( 'ftcon_gads_customer_id', $customer_id ); add_settings_error( 'ftcon_google_ads', 'saved', __( 'Customer ID saved. Now create or select a conversion action below.', 'forge-trueconversion' ), 'success' ); return; } // Handle save conversion action. if ( isset( $_POST['ftcon_gads_save_action'] ) ) { check_admin_referer( 'ftcon_gads_action' ); $conversion_action = isset( $_POST['ftcon_gads_conversion_action_id'] ) ? sanitize_text_field( wp_unslash( $_POST['ftcon_gads_conversion_action_id'] ) ) : ''; if ( empty( $conversion_action ) ) { add_settings_error( 'ftcon_google_ads', 'saved', __( 'Empty Conversion Action', 'forge-trueconversion' ), 'error' ); return; } update_option( 'ftcon_gads_conversion_action_id', $conversion_action ); add_settings_error( 'ftcon_google_ads', 'saved', __( 'Conversion action saved. You can now test the connection below.', 'forge-trueconversion' ), 'success' ); return; } } private function ftcon_get_last_id( string $conversion_action ): string { return substr( $conversion_action, strrpos( $conversion_action, '/' ) + 1 ); } /** * Render the Google Ads Page */ public static function render_page() { if ( ! current_user_can( 'manage_options' ) ) { return; } $is_connected = FTCON_Google_Ads::is_connected(); $customer_id = get_option( 'ftcon_gads_customer_id', '' ); $conversion_action = get_option( 'ftcon_gads_conversion_action_id', '' ); $class_instance = new self(); $conversion_action_id = $class_instance->ftcon_get_last_id( $conversion_action ); // Determine which step is active. $step_1_done = $is_connected; $step_2_done = $step_1_done && ! empty( $customer_id ); $step_3_done = $step_2_done && ! empty( $conversion_action ); ?>

4

5

  1. Conversions > Summary.', 'forge-trueconversion' ); ?>