Włącz powiadomienia e-mail o niskim stanie magazynowym i braku towaru.

How to enable low stock email notifications in WooCommerce; Configuring out of stock email notifications in WooCommerce; Set low stock notifications in WordPress; Enable out of stock notifications in WooCommerce; Email notification settings for stock status in WooCommerce; How to receive notifications when a product is out of stock in WooCommerce; Configuring low stock notifications in WooCommerce; WooCommerce email notifications for inventory management; Set stock status notifications in WooCommerce; Configuring low stock emails in WooCommerce;

Objaśnienie

Aby śledzić stan swojego magazynu, ten kod pomoże Ci otrzymywać powiadomienia e-mail, gdy Twoje produkty są na wyczerpaniu lub są niedostępne w WooCommerce.

Oto jak to działa:

  • Niestandardowe klasy e-maili: Kod dodaje dwie niestandardowe klasy e-maili dla powiadomień o niskim stanie magazynowym i braku towaru. Te klasy definiują treść i format wiadomości e-mail.
  • Wyzwalanie e-maili: Gdy poziom zapasów produktu się zmienia, kod wyzwala odpowiednie powiadomienie e-mail. Dzieje się to za pomocą wbudowanych akcji WooCommerce dla zdarzeń niskiego stanu i braku towaru.
  • Treść e-maila: E-maile zawierają szczegóły, takie jak nazwa produktu, i są wysyłane na adres e-mail administratora. Treść można dostosować za pomocą plików szablonów.

Dzięki temu ustawieniu otrzymasz na czas powiadomienia, co pomoże Ci skutecznie zarządzać poziomami zapasów i uniknąć rozczarowania klientów niedostępnymi produktami.

Kod

add_action( 'init', 'wp_dudecom_enable_stock_notifications' );

function wp_dudecom_enable_stock_notifications() {
    add_filter( 'woocommerce_email_classes', 'wp_dudecom_add_custom_email_classes' );
    add_action( 'woocommerce_low_stock_notification', 'wp_dudecom_trigger_low_stock_email' );
    add_action( 'woocommerce_no_stock_notification', 'wp_dudecom_trigger_no_stock_email' );
}

function wp_dudecom_add_custom_email_classes( $email_classes ) {
    require_once 'class-wp-dudecom-low-stock-email.php';
    require_once 'class-wp-dudecom-no-stock-email.php';

    $email_classes['WP_Dudecom_Low_Stock_Email'] = new WP_Dudecom_Low_Stock_Email();
    $email_classes['WP_Dudecom_No_Stock_Email'] = new WP_Dudecom_No_Stock_Email();

    return $email_classes;
}

function wp_dudecom_trigger_low_stock_email( $product ) {
    $mailer = WC()->mailer();
    $mails = $mailer->get_emails();
    if ( ! empty( $mails['WP_Dudecom_Low_Stock_Email'] ) ) {
        $mails['WP_Dudecom_Low_Stock_Email']->trigger( $product );
    }
}

function wp_dudecom_trigger_no_stock_email( $product ) {
    $mailer = WC()->mailer();
    $mails = $mailer->get_emails();
    if ( ! empty( $mails['WP_Dudecom_No_Stock_Email'] ) ) {
        $mails['WP_Dudecom_No_Stock_Email']->trigger( $product );
    }
}

class WP_Dudecom_Low_Stock_Email extends WC_Email {

    public function __construct() {
        $this->id = 'wp_dudecom_low_stock_email';
        $this->title = 'Low Stock Notification';
        $this->description = 'This email is sent when a product is low in stock.';
        $this->heading = 'Product Low in Stock';
        $this->subject = 'Low Stock Alert: {product_name}';
        $this->template_html = 'emails/wp-dudecom-low-stock-email.php';
        $this->template_plain = 'emails/plain/wp-dudecom-low-stock-email.php';

        add_action( 'wp_dudecom_low_stock_notification', array( $this, 'trigger' ), 10, 1 );

        parent::__construct();
    }

    public function trigger( $product ) {
        if ( ! $this->is_enabled() ) {
            return;
        }

        $this->object = $product;
        $this->recipient = get_option( 'admin_email' );

        $this->placeholders = array(
            '{product_name}' => $this->object->get_name(),
        );

        if ( ! $this->get_recipient() ) {
            return;
        }

        $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );
    }

    public function get_content_html() {
        return wc_get_template_html( $this->template_html, array(
            'email_heading' => $this->get_heading(),
            'product'       => $this->object,
            'sent_to_admin' => true,
            'plain_text'    => false,
            'email'         => $this,
        ) );
    }

    public function get_content_plain() {
        return wc_get_template_html( $this->template_plain, array(
            'email_heading' => $this->get_heading(),
            'product'       => $this->object,
            'sent_to_admin' => true,
            'plain_text'    => true,
            'email'         => $this,
        ) );
    }
}

class WP_Dudecom_No_Stock_Email extends WC_Email {

    public function __construct() {
        $this->id = 'wp_dudecom_no_stock_email';
        $this->title = 'Out of Stock Notification';
        $this->description = 'This email is sent when a product is out of stock.';
        $this->heading = 'Product Out of Stock';
        $this->subject = 'Out of Stock Alert: {product_name}';
        $this->template_html = 'emails/wp-dudecom-no-stock-email.php';
        $this->template_plain = 'emails/plain/wp-dudecom-no-stock-email.php';

        add_action( 'wp_dudecom_no_stock_notification', array( $this, 'trigger' ), 10, 1 );

        parent::__construct();
    }

    public function trigger( $product ) {
        if ( ! $this->is_enabled() ) {
            return;
        }

        $this->object = $product;
        $this->recipient = get_option( 'admin_email' );

        $this->placeholders = array(
            '{product_name}' => $this->object->get_name(),
        );

        if ( ! $this->get_recipient() ) {
            return;
        }

        $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );
    }

    public function get_content_html() {
        return wc_get_template_html( $this->template_html, array(
            'email_heading' => $this->get_heading(),
            'product'       => $this->object,
            'sent_to_admin' => true,
            'plain_text'    => false,
            'email'         => $this,
        ) );
    }

    public function get_content_plain() {
        return wc_get_template_html( $this->template_plain, array(
            'email_heading' => $this->get_heading(),
            'product'       => $this->object,
            'sent_to_admin' => true,
            'plain_text'    => true,
            'email'         => $this,
        ) );
    }
}

Instrukcja

Lokalizacja pliku: Dodaj kod do pliku functions.php swojego motywu lub stwórz plik własnej wtyczki.

Wymagania wstępne:

  • Upewnij się, że WooCommerce jest zainstalowane i aktywowane na Twojej stronie WordPress.

Kroki wdrożenia:

  1. Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do plików instalacji WordPress.
  2. Znajdź plik: Przejdź do wp-content/themes/twoj-motyw/functions.php lub stwórz nowy plik wtyczki w wp-content/plugins/.
  3. Edytuj plik: Otwórz plik functions.php lub plik wtyczki w edytorze tekstu.
  4. Dodaj kod: Skopiuj i wklej podany kod do pliku.
  5. Zapisz zmiany: Zapisz plik i upewnij się, że nie ma błędów składniowych.
  6. Prześlij szablony e-mail: Stwórz niezbędne pliki szablonów e-mail:
    • W katalogu swojego motywu stwórz folder o nazwie emails, a wewnątrz niego kolejny o nazwie plain.
    • Stwórz pliki wp-dudecom-low-stock-email.php i wp-dudecom-no-stock-email.php w folderze emails.
    • Stwórz wersje tekstowe wp-dudecom-low-stock-email.php i wp-dudecom-no-stock-email.php w folderze plain.
  7. Przetestuj funkcjonalność: Dostosuj poziomy zapasów produktów w WooCommerce, aby wywołać powiadomienia o niskim i braku zapasów oraz zweryfikuj, że e-maile są wysyłane na adres e-mail administratora.

W celu uzyskania pomocy przy wdrożeniu lub w celu poznania bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy w zakresie WordPress.