Automatické vygenerování kupónu na slevu za první nákup ve WooCommerce - Affinite.io CZ

Slevy a kupóny jsou mocný marketingový nástroj. Pomocí nich můžete levně a snadno vytvořil loajálního zákazníka.

A my si dnes ukážeme, jak ve WooCommerce automaticky vygenerovat kupón za první nákup.

Jedinečným identifikátorem zákazníka je e-mail, takže budeme vycházet z toho, že máme pouze jednu objednávku e-mailem zákazníka. Pokud jich bude více, nebudeme kupón generovat.

Použijeme hook woocommerce_checkout_order_created, který je aktivní, když je objednávka vytvořena pomocí pokladny. Zkontrolujeme počet objednávek a vygenerujeme kupón:

add_action( 'woocommerce_checkout_order_created', 'generate_custom_coupon' );
function generate_custom_coupon( $order ) {

	global $wpdb;
	$table = $wpdb->prefix . 'postmeta';
	$query   = $wpdb->prepare( "SELECT meta_id FROM $table WHERE meta_key = '_billing_email' AND meta_value = '%s'", array( $order->get_billing_email() ) );
	$results = $wpdb->get_results( $query );
	if ( !empty( $results ) && count( $results ) == 1 ) {

	   	$code = '';
        $keys = array_merge( range( 0, 9 ), range( 'a', 'z' ) );

        for ($i = 0; $i < 10; $i++) {
            $code .= $keys[array_rand( $keys )];
        }

		$code = strtoupper( $code );

		$coupon_args = array(
			'post_title' 	=> $code,
			'post_content' 	=> '',
			'post_status' 	=> 'publish',
			'post_author' 	=> 1,
			'post_type' 	=> 'shop_coupon'
		);

		$coupon_id = wp_insert_post( $coupon_args );

		update_post_meta( $coupon_id, 'discount_type', 'percent' );
		update_post_meta( $coupon_id, 'coupon_amount', 10 );
		update_post_meta( $coupon_id, 'free_shipping', 'no' );
		update_post_meta( $coupon_id, 'usage_limit', 1 );

		update_post_meta( $order->get_id(), 'generated_coupon', $code );
		update_post_meta( $order->get_id(), 'generated_coupon_id', $coupon_id );

	}

}

Jak můžete vidět, vygenerovali jsme náhodný řetězec a následně jsme vygenerovali kupón. Nastavili jsme jej na 10% slevu a jedno použití.

Navíc jsme si u objednávky uložili i kód a id kupónu, pokud bychom to někdy potřebovali.

Vygenerovaný kupón v administraci

Zobrazení kódu kupónu na děkovné stránce

Protože musíme o kupónu dát zákazníkovi vědět, zobrazíme mu informaci na děkovné stránce.

add_action( 'woocommerce_thankyou', 'display_generated_coupon' );
function display_generated_coupon( $order_id ) {

	$coupon_code = get_post_meta( $order_id, 'generated_coupon', true );
	if ( !empty( $coupon_code ) ) {
		echo '<h3>' . __( 'Děkujme za váš první nákup!', 'musilda' ) . '</h3>';
		echo '<p>' . __( 'Jako poděkování jsme Vám vytvořili slevový kupón ve výši 10% na další nákup.', 'musilda' ) . '<br/>';
		echo __( 'Pro získání slevy, při dalším nákupu zadete v pokladně následující kód:', 'musilda' ) . ' ' , $coupon_code .'</p>';
	}

}

Na děkovné stránce se nám informace vypíše až pod adresami, pokud ji budete chtít někde výše, použijte jiný hook.

Takto jednoduché to opravdu je a příště si ukážeme, jak informaci o kupónu poslat na zákazníkův e-mail.

Jak zobrazit hodnotu nákupu pro získání slevy
Jak zobrazit hodnotu nákupu pro získání slevy
24 Říj, 2021
Odeslání e-mailu s kupónem zákazníkovi WooCommerce
Odeslání e-mailu s kupónem zákazníkovi WooCommerce
26 Říj, 2021

Looking for something?