WordPress
Gravity Forms QuickPay Integration
Tag i mod betalinger for produkter eller ydelser direkte fra jeres formularer i Gravity Forms gennem QuickPay.

WordPress

Gravity Forms QuickPay Integration

Tag i mod betalinger for produkter eller ydelser direkte fra jeres formularer i Gravity Forms gennem QuickPay.

Med Gravity Forms til QuickPay Integrationen kan i oprette formularer som kan tage i mod betaling for produkter eller ydelser online gennem QuickPay.

Bemærk af udseende for formularen vil blive identisk med jeres nuværende opsætning og ikke som vist på billederne.

Om Gravity Forms QuickPay plugin

Gravity Forms som i forvejen er et fleksibelt plugin til håndtering af diverse indtastninger kan med Gravity Forms QuickPay plugin udvides til at modtage betalinger gennem QuickPay. Opret variable og komplekse formularer som eksempelvis:

  • Tilmeldingsgebyrer
  • Produktsalg
  • Salg af kurser eller billetter
  • Indkrævelse af betaling
  • Eller noget helt andet?

Gravity FOrms QuickPay plugin’et integrerer fint med andre sprog via plugins som WPML og Polylang.

Dette plugin integrerer desuden direkte ind i jeres nuværende layout for Gravity Forms og formularer i jeres WordPress tema.

Opsætning af plugin

Begynd med at aktivere plugin efter det er aktiveret på jeres WordPress website med det allerede aktiverede Gravity Forms plugin.

Log-ind på din QuickPay.dk konto og opsæt din betalingsløsning (Custom integration), kontroller at følgende url bruges til call-back url “https://ditdomæne.dk/payment-callback/”.

Opret nu en side med slug/url “betaling-godkendt” og indsæt følgende shortcode [gf_quickpay].

Opret herefter en side med slug/url “betaling-afvist” og indtast det budskab i ønsker at vise til en bruger som ikke får gennemført den forsøgte betaling.

Begge sider kan tilpasses senere så de passer bedre til jeres betalingsformularer.

Klik nu på Formularer > indstillinger > QuickPay i WordPress kontrolpanelet for at knytte jeres Quick-Pay konto med Gravity Forms. De enkelte data for denne side findes på jeres QuickPay konto. Kontakt QuickPay hvis i har problemer med at finde disse data.

I WordPress kontrolpanelet skal vi have oprettet en formular som skal bruges til betaling. Hvis i allerede har oprettet en formular til formålet så lad os tage udgangspunkt i denne. Hold musen over indstillinger for den nye/eksisterende formular og vælg QuickPay.

Under QuickPay feedindstillinger skal i først aktivere QuickPay og herefter angive de to slugs/urls fra de to sider vi lige har oprettet.
I feltet for “Betaling gennemført landingsside” indtastes “/betaling-godkendt” (uden “).
I feltet for “Betaling afbrudt landingsside” indtastes “/betaling-afvist” (uden “).
Gem indstillingerne og gå tilbage til redigering af formularen.

Under Prisfelter kan i nu tilføje produkt feltet som kan tilpasse efter jeres ønsker. Husk at der skal være en værdi som er større end 1 for at kunne komme til QuickPay. Gem formularen og i kan nu modtage betaling direkte på websitet.

PSD2: Strong Customer Authentication (SCA)

Da betalingen foregår i det hostede betalingsvindue hos QuickPay, skal du ikke foretage dig nogen ændringer for at dette plugin er kompatibelt.

Plugin krav

  • For at anvende Gravity Forms QuickPay integrationen skal i som minimum have version 1.9 af Gravity Forms.
  • WordPress skal som minimum have version 3.8 som Gravity Forms 1.9 kræver.
  • I kan bruge din nuværende QuickPay konto eller i kan oprette en ny QuickPay konto til brug på jeres website.

Support

Support til købte plugins foregår udelukkende via email til support@rommel.dk.

Auto-capture payments

Add this snippet to your functions.php file in the theme you are using on create a plugin and add this to the plugin.

/**
 * Adds the auto-capture feature to the Gravity Forms with quick-pay payments.
 **/
add_filter( 'gf_qp_pre_submit_formdata', function ( $qpformdata, $confirmation, $form, $entry, $is_ajax ) {
	$qpformdata['autocapture'] = 1;

	return $qpformdata;
}, 5, 4 );

/**
 * Adds the auto-capture feature to a specific form in Gravity Forms with quick-pay payments.
 **/
add_filter( 'gf_qp_pre_submit_formdata', function ( $qpformdata, $confirmation, $form, $entry, $is_ajax ) {
	// Only run on the form that has id 5.
	if ( $form['id'] === 5 ) {
		$qpformdata['autocapture'] = 1;
	}

	return $qpformdata;
}, 5, 4 );

Google Tag Manager Data-layer (Purchases)

/**
 * Adds custom datalayer for Google Tag Manager when the reciept is printed.
 * This adds the datalayer to the footer by passing the variables from one action to the other via use.
 */
add_action( 'gf_quickpay_reciept_data', function ( $output, $entry, $products, $_order_id ) {

	// WordPress footer hook.
	add_action( 'wp_footer', function () use ( $output, $entry, $products, $_order_id ) {
		if ( isset( $products['products'] ) && is_array( $products['products'] ) ) {
			$productsObjects = '';
			foreach ( $products['products'] as $key => $product ) {

				// Product options.
				if ( ! empty( $product['options'] ) ) {
					foreach ( $product['options'] as $option ) {

						$replace = [ "'", ' ', ':', '-' ];
						$replace_width = [ '', '_', '', '' ];

						$product_name = ! empty( $option['field_label'] ) ? $option['field_label'] : '';
						$product_sku = ! empty( $option['option_label'] ) ? str_replace( $replace, $replace_width, strtolower($option['option_label']) ) : '';
						$product_category = ! empty( $option['option_name'] ) ? str_replace( $replace, $replace_width, $option['option_name'] ) : 'Fag';
						$product_price = ! empty( $option['price'] ) ? $option['price'] : 0;

						$productsObjects .= "{
						'sku': '" . $product_sku . "',
						'name': '" . $product_name . "',
						'category': '" . $product_category . "',
						'price': " . $product_price . ",
						'quantity': '1'
					},";
					}
				}
			}

			$transactionTotal = $entry['payment_amount'];
			$transactionTax   = ! empty( $transactionTotal ) ? $transactionTotal * 0.2 : 0;
			?>
			
				window.dataLayer = window.dataLayer || [];
				dataLayer.push({
					'transactionId': '',
					'transactionAffiliation': '',
					'transactionTotal': ,
					'transactionTax': ,
					
					'transactionShipping': ,
					
					'transactionProducts': []
				});
			
			<?php
		}
	}, PHP_INT_MAX, 0 );

	return $output;
}, 10, 4 );

3.0.1: “gravityforms_qpform_send_to_quickpay” no disables notification logic as well, so the plugin no longer blocks notifications if it is not being used.

3.0.0: Added functions to randomize and extract the form entry id to ensure live and test entries don’t hit the same numbers.

2.0.3: Added filter ‘gravityforms_qpform_send_to_quickpay’ to make it possible to disable the QuickPay redirect and apply custom logic.

2.0.2: Added filter ‘gf_quickpay_reciept_data’ for adding custom events when reciept is show or filter the reciept output.

2.0.1: Added filter ‘gf_qp_pre_submit_formdata’ to filter form data before it’s send to quick-pay. Also did a little cleaning in the plugin and added additional inline documentation.