[freeside-commits] branch master updated. 5cfe4a2d5a299af5af44b249e12f114c9c886850

Ivan ivan at 420.am
Wed Apr 19 10:53:50 PDT 2017


The branch, master has been updated
       via  5cfe4a2d5a299af5af44b249e12f114c9c886850 (commit)
      from  f630d74ba5579f18e4c65733b13081f5afed9229 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5cfe4a2d5a299af5af44b249e12f114c9c886850
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Apr 19 10:53:49 2017 -0700

    wordpress plugin, RT#75279

diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index e69122b..8072006 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -593,6 +593,7 @@ sub customer_info_short {
       or return { 'error' => "customer_info_short: unknown custnum $custnum" };
 
     $return{display_custnum} = $cust_main->display_custnum;
+    $return{max_invnum}      = $cust_main->max_invnum;
 
     if ( $session->{'pkgnum'} ) { 
       $return{balance} = $cust_main->balance_pkgnum( $session->{'pkgnum'} );
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index f4990a4..19a5816 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -3432,6 +3432,20 @@ sub num_cust_attachments_deleted {
   );
 }
 
+=item max_invnum
+
+Returns the most recent invnum (invoice number) for this customer.
+
+=cut
+
+sub max_invnum {
+  my $self = shift;
+  $self->scalar_sql(
+    " SELECT MAX(invnum) FROM cust_bill WHERE custnum = ?",
+    $self->custnum
+  );
+}
+
 =item cust_bill [ OPTION => VALUE... | EXTRA_QSEARCH_PARAMS_HASHREF ]
 
 Returns all the invoices (see L<FS::cust_bill>) for this customer.
diff --git a/fs_selfservice/wordpress/README.txt b/fs_selfservice/wordpress/README.txt
index 7e4dbcd..759f839 100644
--- a/fs_selfservice/wordpress/README.txt
+++ b/fs_selfservice/wordpress/README.txt
@@ -18,8 +18,8 @@ self-service" plugin, and click "Activate".
 
 Configuration:
 
-In Wordpress, go to Settings -> General and set "Freeside self-service URL"
-to the 
+In Wordpress, go to Settings -> General and set "Freeside server"
+to your Freeside server name or IP address.
 
 
 Freeside configuration:
@@ -38,8 +38,8 @@ VPN or tunnel.
 
 Usage:
 
-See the included example_login.php, process_login.php and
-example_selfservice.php files.  These files perform a self-service login
+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
 
diff --git a/fs_selfservice/wordpress/example_selfservice.php b/fs_selfservice/wordpress/example_selfservice.php
index ae588bf..2bfb5b3 100644
--- a/fs_selfservice/wordpress/example_selfservice.php
+++ b/fs_selfservice/wordpress/example_selfservice.php
@@ -4,9 +4,6 @@ require( dirname( __FILE__ ) . '/wp-blog-header.php' );
 
 $freeside = new FreesideSelfService();
 
-error_log( "COOKIE: ". $_COOKIE['freeside_session_id'] );
-error_log( "COOKIE: ". $GLOBALS['FREESIDE_SESSION_ID'] );
-
 $customer_info = $freeside->customer_info_short( array(
   'session_id' => $_COOKIE['freeside_session_id'],
 ) );
@@ -22,8 +19,6 @@ extract($customer_info);
 
 get_header();
 
-error_log( "COOKIE: ". $_COOKIE['freeside_session_id'] );
-
 ?>
 
 <h3>Billing</h3>
@@ -37,19 +32,21 @@ error_log( "COOKIE: ". $_COOKIE['freeside_session_id'] );
 <?php } ?>
 
 <p><big><strong>Username</strong></big></p>
-<p>me at gmail.com</p>
+<p><?php echo htmlspecialchars($svc_label) ?></p>
 
 <p><big><strong>Account Number</strong></big></p>
 <p><?php echo $display_custnum ?></p>
 
 <p><big><strong>Address</strong></big></p>
 <address>
-Box 564, Disneyland<br>
-USA
+<?php echo htmlspecialchars($address1); ?><br>
+<?php echo strlen($address2) ? htmlspecialchars($address2).'<br>' : '' ?>
+<?php echo $city ?>, <?php echo $state ?>  <?php echo $zip ?><br>
+<?php echo $country ?>
 </address>
 
 <p><big><strong>Email Address</strong></big></p>
-<p>me at gmail.com</p>
+<p><?php echo htmlspecialchars($invoicing_list) ?></p>
 
 <br>
 <br>
@@ -60,8 +57,8 @@ USA
 <br>
 <br>
 <br>
-<p><big><strong> <font color="	#4682B4">View my Bill</strong></big></font></p>
-<p><big><strong> <font color="#4682B4">Change Bill Deliver Options</strong></big></font></p>
+<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>
 
 
 
@@ -70,7 +67,6 @@ USA
 <h4><font color="#4682B4"> <i class="fa fa-laptop"> </i> </font> Internet </h4>
 <h4><font color="#4682B4"> <i class="fa fa-volume-control-phone"> </i> </font>   Voice </h4>
 
-
 <?php echo $announcement ?>
 
 <!--
diff --git a/fs_selfservice/wordpress/freeside_selfservice.php b/fs_selfservice/wordpress/freeside_selfservice.php
index 5fe7aa7..f619e81 100644
--- a/fs_selfservice/wordpress/freeside_selfservice.php
+++ b/fs_selfservice/wordpress/freeside_selfservice.php
@@ -50,8 +50,6 @@ function freeside_init() {
 
   //error_log($GLOBALS['$FREESIDE_PROCESS_LOGIN']);
   if ( ! $GLOBALS['FREESIDE_PROCESS_LOGIN'] ) {
-error_log("DACOOKIE: ". $_COOKIE['freeside_session_id']);
-    $GLOBALS['FREESIDE_SESSION_ID'] = $_COOKIE['freeside_session_id'];
     return;
   } else {
     $GLOBALS['FREESIDE_PROCESS_LOGIN'] = false;
@@ -90,7 +88,7 @@ error_log("DACOOKIE: ". $_COOKIE['freeside_session_id']);
 
   $session_id = $response['session_id'];
 
-  error_log("[login] logged into freeside with session_id=$freeside_session_id, setting cookie");
+  //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).
diff --git a/fs_selfservice/wordpress/view_invoice.php b/fs_selfservice/wordpress/view_invoice.php
new file mode 100644
index 0000000..a1e1680
--- /dev/null
+++ b/fs_selfservice/wordpress/view_invoice.php
@@ -0,0 +1,30 @@
+<?php
+
+require( dirname( __FILE__ ) . '/wp-blog-header.php' );
+
+$freeside = new FreesideSelfService();
+
+$invoice_info = $freeside->invoice( array(
+  'session_id' => $_COOKIE['freeside_session_id'],
+  'invnum'     => $_REQUEST['invnum'],
+) );
+
+
+if ( isset($invoice_info['error']) && $invoice_info['error'] ) {
+  $error = $invoice_info['error'];
+  wp_redirect('example_login.php?freeside_error='. urlencode($error));
+  die();
+}
+
+extract($invoice_info);
+
+get_header();
+
+?>
+
+<h3>Invoice</h3>
+
+<?php echo $invoice_html ?>
+
+<?php get_footer(); ?>
+

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/ClientAPI/MyAccount.pm                      |    1 +
 FS/FS/cust_main.pm                                |   14 ++++++++++
 fs_selfservice/wordpress/README.txt               |    8 +++---
 fs_selfservice/wordpress/example_selfservice.php  |   20 ++++++--------
 fs_selfservice/wordpress/freeside_selfservice.php |    4 +--
 fs_selfservice/wordpress/view_invoice.php         |   30 +++++++++++++++++++++
 6 files changed, 58 insertions(+), 19 deletions(-)
 create mode 100644 fs_selfservice/wordpress/view_invoice.php




More information about the freeside-commits mailing list