RT# 77532 - created method to display phone types
[freeside.git] / fs_selfservice / wordpress / freeside_selfservice.php
index f619e81..852c22e 100644 (file)
@@ -5,7 +5,7 @@ Plugin URI:  http://freeside.biz/freeside
 Description: Call the Freeside signup and self-service APIs from within Wordpress
 Version:     0.20170417
 Author:      Freeside Internet Services, Inc.
-Author URI:  https://freeside.biz/freeside/
+Author URI:  http://freeside.biz/freeside/
 License URI: https://www.gnu.org/licenses/gpl-3.0.html
 Text Domain: freeside_selfserivce
 Domain Path: /languages
@@ -46,9 +46,22 @@ function freeside_server_input() {
 //TODO: remove freeside_server on uninstall
 
 function freeside_init() {
-  //error_log("FINALLY action run ". $FREESIDE_PROCESS_LOGIN);
 
-  //error_log($GLOBALS['$FREESIDE_PROCESS_LOGIN']);
+  if ( $GLOBALS['FREESIDE_PROCESS_LOGOUT'] ) {
+    $GLOBALS['FREESIDE_PROCESS_LOGOUT'] = false;
+
+    $freeside = new FreesideSelfService();
+    $response = $freeside->logout( array(
+      'session_id' => $_COOKIE['freeside_session_id'],
+    ) );
+    setcookie('freeside_session_id', '', time() - 3600);
+    $error = $response['error'];
+    if ( $error ) {
+      error_log("Logout error: $error");
+    }
+    return;
+  }
+
   if ( ! $GLOBALS['FREESIDE_PROCESS_LOGIN'] ) {
     return;
   } else {
@@ -75,11 +88,12 @@ function freeside_init() {
     $url .= $_SERVER['SERVER_NAME'];
     $url .= $_SERVER['REQUEST_URI'];
 
-    wp_redirect(dirname($url). '/example_login.php?username='. urlencode($_POST['freeside_username']).
-                             '&domain='.   urlencode($_POST['freeside_domain']).
-                             '&email='.    urlencode($_POST['freeside_email']).
-                             '&freeside_error='.    urlencode($error)
-          );
+    wp_redirect(dirname($url). '/example_login.php?'.
+                  'username='.        urlencode($_POST['freeside_username']).
+                  '&domain='.         urlencode($_POST['freeside_domain']).
+                  '&email='.          urlencode($_POST['freeside_email']).
+                  '&freeside_error='. urlencode($error)
+    );
     exit;
 
   }
@@ -90,10 +104,6 @@ function freeside_init() {
 
   //error_log("[login] logged into freeside with session_id=$freeside_session_id, setting cookie");
 
-// now what?  for now, always redirect to the main page (or the select a
-// customer diversion).
-// eventually, other options?
-
   setcookie('freeside_session_id', $session_id);
 
   $GLOBALS['FREESIDE_LOGIN_RESPONSE'] = $response;
@@ -125,7 +135,7 @@ class FreesideSelfService {
     public function __call($name, $arguments) {
     
         $URL = 'http://'. get_option('freeside_server'). ':8080';
-        error_log("[FreesideSelfService] $name called, sending to ". $URL);
+        //error_log("[FreesideSelfService] $name called, sending to ". $URL);
 
         $request = xmlrpc_encode_request("FS.ClientAPI_XMLRPC.$name", freeside_flatten($arguments[0]));
         $context = stream_context_create( array( 'http' => array(
@@ -135,7 +145,7 @@ class FreesideSelfService {
         )));
         $file = file_get_contents($URL, false, $context);
         $response = xmlrpc_decode($file);
-        if (xmlrpc_is_fault($response)) {
+        if (isset($response) && xmlrpc_is_fault($response)) {
             trigger_error("[FreesideSelfService] XML-RPC communication error: $response[faultString] ($response[faultCode])");
         } else {
             //error_log("[FreesideSelfService] $response");