bungfrangki Sebaik mungkin mencoba bergumul dengan hasrat. Gagasan. Sebelum hal itu benar-benar menghilang karena ketidakmampuan jiwa-raga untuk membuatnya selalu melekat. Saat-saat mulai terasa berat untuk dideklarasikan. Apa boleh buat, itu sudah tugas kita untuk membuat hidup menjadi lebih menarik dan independen.

Mencegah Checkout Jika Produk Sudah Dibeli pada Plugin Easy Digital Downloads (EDD)

1 min read

Mencegah Checkout Jika Produk Sudah Dibeli pada Plugin Easy Digital Downloads (EDD)

Dalam hal ini, membatasi pembelian cukup 1 kali checkout per produk pada Easy Digital Downloads (EDD).

Bagi penjual produk digital, seperti jual template Blogger, eBook, theme WordPress, dan lainnya, alangkah baiknya menyetel limit cukup melakukan 1 (satu) pembelian produk per customer (pada produk yang sama). Khususnya pengguna plugin Easy Digital Downloads (EDD).

Artinya, produk (katakanlah template) yang sudah dibeli sebelumnya tidak bisa lagi di Checkout oleh customer yang sama. Yang sudah terdaftar sebagai pembeli produk tersebut di database pembelian.

Easy Digital Downloads: Membatasi 1 Kali Pembelian Untuk Produk yang Sama per Pelanggan

Cara ini juga sudah dilengkapi dengan notifikasi pesan error, mengapa yang bersangkutan tidak bisa melanjutkan proses Checkout.

Silahkan copy-paste kode ini di file functions.php pada template store Anda.

<?php

// Mencegah checkout jika barang/produk sudah pernah dibeli
// Dalam kasus ini, cukup beli 1 saja

add_filter( 'edd_can_checkout', 'wd_limit_purchase' );
function wd_limit_purchase(){
	$user_id 		= get_current_user_id();
	$downloads 		= edd_get_users_purchased_products( $user_id );
	$can_checkout 		= true;

	if ( ! empty( $downloads ) ){ 
		foreach ( $downloads as $download ){ 
			$download_id = $download->ID;
			$in_cart = edd_item_in_cart( $download_id );

			if( $in_cart == true ) {
				$can_checkout = false;

				edd_set_error( 'already_purchased', apply_filters( 'edd_pc_error_message', __( 'May you have already purchased for this(these) template(s). There is a limit of one per customer. You can log out and purchase with a different account, or remove it from your cart.' ) ) );
						break;

						edd_unset_error( 'already_purchased' );
						break;
			}

						
		}
	}
	edd_print_errors();
	return $can_checkout;

}

Kekurangannya adalah…

Jika pelanggan tidak melanjutkan proses sampai pada tahap pembayaran, alias berubah pikiran untuk menunda pembayaran akan dilakukan dimasa akan datang, maka pelanggan ini tidak bisa lagi melihat form Checkout untuk pembelian produk tersebut di masa akan datang.

Sebab ID transaksi produknya sudah masuk ke purchase_history.

Sebetulnya, Admin bisa saja mengatasi hal ini dengan menghapus transaksi-transaksi yang tidak sampai pada proses pembayaran.

Hanya saja, ini akan sedikit merepotkan jika lalu lintas pembelian sudah begitu padat setiap harinya.

Btw, cara ini hanya diterapkan untuk Payment Gateway menggunakan PayPal Standard. Untuk metode pembayaran Moota EDD atau lainnya (yang langsung dialihkan ke halaman Confirmation) belum diketahui apakah cara ini berfungsi dengan baik atau tidak.

Jika ada saran, sarankan. Jika ada pertanyaan, pertanyakan. Terima kasih!

Referensi: sumber |via

bungfrangki Sebaik mungkin mencoba bergumul dengan hasrat. Gagasan. Sebelum hal itu benar-benar menghilang karena ketidakmampuan jiwa-raga untuk membuatnya selalu melekat. Saat-saat mulai terasa berat untuk dideklarasikan. Apa boleh buat, itu sudah tugas kita untuk membuat hidup menjadi lebih menarik dan independen.

3 Replies to “Mencegah Checkout Jika Produk Sudah Dibeli pada Plugin Easy Digital Downloads (EDD)”

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *