summaryrefslogtreecommitdiff
path: root/fs_selfservice
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-04-19 12:57:57 -0700
committerIvan Kohler <ivan@freeside.biz>2017-04-19 12:57:57 -0700
commit99818af994e0731542beebc1045cfc33dcf746f1 (patch)
treee2bba7c37665740a67333cb453cebbe065ff5bab /fs_selfservice
parent786daeef39e4009958f732744cacc0d24d16d021 (diff)
add logout to example wordpress self-service, RT#75279
Diffstat (limited to 'fs_selfservice')
-rw-r--r--fs_selfservice/wordpress/README.txt9
-rw-r--r--fs_selfservice/wordpress/example_selfservice.php1
-rw-r--r--fs_selfservice/wordpress/freeside_selfservice.php18
-rw-r--r--fs_selfservice/wordpress/process_logout.php13
4 files changed, 36 insertions, 5 deletions
diff --git a/fs_selfservice/wordpress/README.txt b/fs_selfservice/wordpress/README.txt
index 759f83963..f068e82de 100644
--- a/fs_selfservice/wordpress/README.txt
+++ b/fs_selfservice/wordpress/README.txt
@@ -38,10 +38,11 @@ VPN or tunnel.
Usage:
-See the included example_login.php, process_login.php, example_selfservice.php
-and view_invoice.php files. These files perform a self-service login
-and display a basic landing page. To use, copy them to the wordpress content
-directory (or a subdirectory), and point your browser to example_login.php
+See the included example_login.php, process_login.php, process_login.php,
+example_selfservice.php and view_invoice.php files. These files perform a
+self-service login and display a basic landing page. To use, copy them and
+the elements/ subdirectory to the wordpress content directory (or a
+subdirectory) and point your browser to example_login.php
For full API documentation including all available functions, their arguments
and return data, see
diff --git a/fs_selfservice/wordpress/example_selfservice.php b/fs_selfservice/wordpress/example_selfservice.php
index 2bfb5b35c..6e5049cd4 100644
--- a/fs_selfservice/wordpress/example_selfservice.php
+++ b/fs_selfservice/wordpress/example_selfservice.php
@@ -60,6 +60,7 @@ get_header();
<p><a href="view_invoice.php?invnum=<?php echo $max_invnum ?>">View my Bill</a></p>
<p><a href="change_bill.php">Change Bill Deliver Options</a></p>
+<p><a href="process_logout.php">Logout</a></p>
<h3>Services</h3>
diff --git a/fs_selfservice/wordpress/freeside_selfservice.php b/fs_selfservice/wordpress/freeside_selfservice.php
index d26c56f4a..852c22e75 100644
--- a/fs_selfservice/wordpress/freeside_selfservice.php
+++ b/fs_selfservice/wordpress/freeside_selfservice.php
@@ -46,6 +46,22 @@ function freeside_server_input() {
//TODO: remove freeside_server on uninstall
function freeside_init() {
+
+ 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 {
@@ -129,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");
diff --git a/fs_selfservice/wordpress/process_logout.php b/fs_selfservice/wordpress/process_logout.php
new file mode 100644
index 000000000..398fb22bf
--- /dev/null
+++ b/fs_selfservice/wordpress/process_logout.php
@@ -0,0 +1,13 @@
+<?php
+
+$GLOBALS['FREESIDE_PROCESS_LOGOUT'] = true;
+
+require( dirname( __FILE__ ) . '/wp-blog-header.php' );
+
+get_header();
+
+?>
+
+You have been logged out.
+
+<?php get_footer(); ?>