Direkt zum Hauptinhalt

Snippet - Wenn Kunde ein explicites Produkt in Besitz hat ist dieses nicht mehr kaufbar

Beschreibung:

Wenn ein Kunde ein bestimmtes Produkt im Besitz hat, sprich schon mal gekauft hat, kann er diesen Artikel nicht nochmals erwerben. Die menge Beschreibungsfelder etc. und in den Warenkorb werden via CSS ausgeblendet.
Auch hier kann wieder entschieden werden, welche Sachen angezeigt werden sollen.
Was nicht gebraucht wird, löschen oder auskommentieren. Unter target_product_id die id des produktes eintragen

Code:

add_action('woocommerce_before_single_product', function() {
    if (!is_user_logged_in()) {
        echo '<div style="padding:10px;background:#ffeeba;border-left:5px solid #f0ad4e;margin-bottom:15px;">
                🔒 Du bist nicht eingeloggt. Eine Besitzprüfung ist nicht möglich.
              </div>';
        return;
    }

    global $product;
    $user_id = get_current_user_id();
    $product_id = $product->get_id();
    $owns_product = wc_customer_bought_product('', $user_id, $product_id);

    // Hier deine Ziel-Produkt-ID eintragen
    $target_product_id = 1234;

    if ($owns_product) {
        echo '<div style="padding:10px;background:#d4edda;border-left:5px solid #28a745;margin-bottom:15px;">
                ✅ Du besitzt dieses Produkt bereits.
              </div>';

        if ($product_id == $target_product_id) {
            echo '<div style="padding:10px;background:#fff3cd;border-left:5px solid #ffeeba;margin-bottom:15px;">
                    🛑 Du besitzt dieses Produkt bereits. Ein erneuter Kauf ist nicht möglich.
                  </div>';

            // Kaufbereich via CSS ausblenden
            add_action('wp_head', function() {
                echo '<style>
                    body.woocommerce.single-product .cart,
                    body.woocommerce.single-product .quantity,
                    body.woocommerce.single-product form.cart {
                        display: none !important;
                    }
                </style>';
            });
        }
    } else {
        echo '<div style="padding:10px;background:#f8d7da;border-left:5px solid #dc3545;margin-bottom:15px;">
                ❌ Du besitzt dieses Produkt nicht.
              </div>';
    }
});