Gebruik de wizard voor aanpassing van de instellingen. Hiermee kan je instellen naar welke pagina gesprongen moet worden na:
- een geslaagde betaling
- een afgebroken betaling
- een geannuleerde betaling
De configuratie knip/plak je daarna in je configuratiebestand (/idealcheckout/configuration/ideal.php)
Ook moet je bestanden toevoegen aan deze submap: wp-content/plugins/events-manager-pro/add-ons/gateways
En moet je het bestand gateways.php aanpassen. Een stukje code op het einde toevoegen: de laatste 2 regels
[code]function emp_register_gateway($gateway, $class) { EM_Gateways::register_gateway($gateway, $class); } //compatibility, use EM_Gateways directly}
include(‘gateway.php’);
include(‘gateways.transactions.php’);
include(‘gateway.paypal.php’);
include(‘gateway.offline.php’);
include(‘gateway.authorize.aim.php’);
// Load iDEAL Checkout gateways
include(‘idealcheckout.inc.php’);
[/code]
Zodra de beheerder de reservering bevestigt, wordt de factuur verstuurd als pdf.
Ook als het een reservering was waarbij geen betaling plaatsvond (coupon code: korting 100%).
Die factuur ziet er ietsje anders uit.
Aanwijzingen:
- Maak een map “facturen” aan in wp-content/uploads; geef het 777 rechten. Hier komen de facturen in terecht. Zelf af en toe eens opruimen.
- In evenementen forms editor: maak een bookingsform met de gewenste velden. NB: let erop dat je onder Type iets kiest uit het rijtje Registration fields ofwel uit custom registration fields.
function my_wp_mail_filter( $args ) {
global $EM_Event;
$bestandsNaam = null;
$y = ”;
$args[‘headers’] = ‘Bcc: <events@dnaindebouw.nl>’;
foreach($EM_Event->get_bookings()->bookings as $EM_Booking) {
/* voor testing purposes:
$x = get_object_vars($EM_Booking);
foreach( $x as $k => $v ) {
$y .= $k.’ is een ‘;
if( gettype($v) == ‘string’ || gettype($v) == ‘integer’ ) {
$y .= $v. ‘ (‘. strtoupper(gettype($v)).’)’;
} else {
$y .= gettype($v);
}
$y .= ‘
‘;
}
$y .= ‘
=====================
‘;
*
*/
// vergelijk het booking_id in het object met dat in de url en check dat het een bevestiging is
if( $EM_Booking->booking_id == $_GET[‘booking_id’] && ( isset($_GET[‘action’]) && $_GET[‘action’] === ‘bookings_approve’ ) ) {
//begin Karla
$personObj = $EM_Booking->person;
$userFirstname = $personObj->first_name;
$userLastname = $personObj->last_name;
$userDispname = $EM_Booking->person->display_name;
//$user_info = get_userdata($EM_Person->ID);
$user_info = get_userdata($EM_Booking->person->ID);
// maak een eigen array met alle informatie er in
$aAlleInfo = array(‘factuurnr’ => $EM_Booking->booking_id, ‘booking_spaces’ => $EM_Booking->booking_spaces, ‘booking_price’ => $EM_Booking->booking_price,
‘event’ => $EM_Booking->event, ‘persoon’ => $EM_Booking->person,
‘organisatie’ => $EM_Booking->person->about,
‘voornaam’ => $EM_Booking->person->first_name,
‘naam’ => $EM_Booking->person->dbem_voorletter_en_achternaam,
‘achternaam’ => $EM_Booking->person->user_name,
‘adres’ => $EM_Booking->person->dbem_address,
‘postcode’ => $EM_Booking->person->dbem_zip,
‘stad’ => $EM_Booking->person->dbem_city,
‘tel’ => $EM_Booking->person->phone,
‘tickets’ => $EM_Booking->tickets->tickets );
//var_dump($aAlleInfo);
// include het script dat de pdf moet genereren
include_once( get_stylesheet_directory() . ‘/includes/generateInvoice.php’ );
// genereer PDF en geef filenaam terug zodat we hem kunnen attachen aan de mail
$oPdf = new clsFactuurPDF( $aAlleInfo );
$bestandsNaam = $oPdf->generatePDF();
}
}
$new_wp_mail = array(
‘to’ => $args[‘to’],
‘subject’ => $args[‘subject’],
‘message’ => $args[‘message’],
‘headers’ => $args[‘headers’] );
if( is_file($bestandsNaam ) ) {
$new_wp_mail[‘attachments’] = array($bestandsNaam);
}
//exit;
return $new_wp_mail;
}
[/code]
Nog 2 filters toegevoegd: deze zorgen ervoor dat de afzender in orde is; die veranderde ineens in WordPress toen ik een BCC instelde:
[code] add_filter( ‘wp_mail_from’, function( $email ) {return ‘x@y.com’;
});
add_filter( ‘wp_mail_from_name’, function( $name ) {
return ‘naam bedrijf’;
});[/code]
Want dit werkt niet, geeft foutmelding!
[code] //$this->pdfPad = ‘doeminnaam/naamsubmap/wp-content/uploads/facturen/’;[/code]- Maak een map includes in je child theme en plaats hierin de bestanden voor het maken van een pdf. Gratis te downloaden op http://www.tcpdf.org/
De map heet pctdf; ik hernoemde hem tot pdfgenerator. In de submap config staat het bestandje tcpdf_config.php. Hier kan je lettertype, grootte, marges ed instellen.
- Maak een bestandje generateInvoice.php en plaats ook dat in de map includes.
- NB: bij grote update van events manager pro (als het gaat via downloaden bestand) moet je zelf de benodigde bestanden weer toevoegen:
Voeg dit stukje code op het einde toe: [code] // Load iDEAL Checkout gateways
include(‘idealcheckout.inc.php’);
[/code]
Ook moet je de ideal-bestanden toevoegen aan deze submap: wp-content/plugins/events-manager-pro/add-ons/gateways
Verhielp: nu moeten mensen die betaalden voor een evenement ook handmatig worden goedgekeurd. Dat gebeurde eerst niet, met als gevolg dat ons facturen systeem niet meer werkte. Want dat werd juist geactiveerd bij het “goedkeuren” van een boeking.
Nieuw probleem: Bij boeking kregen ze direct een melding dat hun boeking was geaccepteerd, maar bovendien dat het een gratis boeking was.
Ik heb dit gerapporteerd aan ideal checkout en het intussen zelf verholpen: in domeinnaam/wp-content/plugins/events-manager-pro/add-ons/gateways/gateway.idealcheckoutideal.php
Regel 68 veranderd in set_status(1, false); veranderd in set_status(0, false);
$EM_Booking->set_status(0, false);[/code]
Dit zorgt ervoor dat een boeking altijd handmatig moet worden goedgekeurd.
Vergelijkbaar:
- *Events manager
Prettige kalender, alles goed vertaald