Adresgegevens in de account opslaan

VN:F [1.9.17_1161]
Rating: 0.0/5 (0 votes cast)

Een opdrachtgever van me wilde graag geen adres-velden op de checkout, maar alleen op de account-pagina. Op zich was dat niet zo heel erg moeilijk, velden toevoegen aan account.php en verborgen input-velden met de adresgegevens in checkout.php (Shopp vereist namelijk wel een adres tijdens de checkout).

Maar toen kwamen we achter een probleem: het wijzigen van de adresgegevens op de account-pagina werkt niet. Het wordt alleen opgeslagen als je op de checkout.php zit.
Zoeken in de Shopp forums hielp ook niet, daar bleek dat dit al sinds het begin zo is (en er erg veel mensen zijn die dit wel graag willen).

Het enige dat ik dacht was: “maar zo moeilijk kan het toch niet zijn?” En inderdaad: zo moeilijk was het ook niet ;-)

De code

De volgende code zet je in de functions.php van je theme (of in een aparte plugin -> aangeraden!):

function save_address_info()
{
  global $Shopp;

  $Order =& $Shopp->Order;

  if ( isset($_GET['acct']) && ( $_GET['acct'] == 'account' ) )
  {
    if ( isset($_POST['billing']) && isset($_POST['shipping']) )
    {
      // Shipping address
      $Order->Shipping->address  = $_POST['shipping']['address'];
      $Order->Shipping->xaddress  = $_POST['shipping']['xaddress'];
      $Order->Shipping->city    = $_POST['shipping']['city'];
      $Order->Shipping->state    = $_POST['shipping']['state'];
      $Order->Shipping->country  = $_POST['shipping']['country'];

      $Order->Shipping->save();

      // Billing address
      $Order->Billing->address  = $_POST['billing']['address'];
      $Order->Billing->xaddress  = $_POST['billing']['xaddress'];
      $Order->Billing->city    = $_POST['billing']['city'];
      $Order->Billing->state    = $_POST['billing']['state'];
      $Order->Billing->country  = $_POST['billing']['country'];

      $Order->Billing->save();
    }
  }
} // end save_address_info
add_action('shopp_init','save_address_info');

En je moet natuurlijk niet vergeten om de velden daadwerkelijk aan je account.php toe te voegen ;-)

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Geef een reactie

Your email address will not be published. Please enter your name, email and a comment.

*

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <div align="" class="" dir="" id="" lang="" style="" xml:lang=""> <pre class="">

CommentLuv badge