25 Cuplikan WooCommerce Terbaik Untuk WordPress

  1. 1. Sedang membaca: 25 Cuplikan WooCommerce Terbaik Untuk WordPress
  2. 2. 25 Cuplikan WooCommerce Terbaik Untuk WordPress Bagian 2

Waktu berlalu … Sudah 6 bulan sejak saya mulai bekerja untuk WooThemes sebagai teknisi pendukung purna waktu WooCommerce. Selama 6 bulan ini saya belajar banyak di WooCommerce dan saya banyak kode banyak!) dari cuplikan terkait WooCommerce. Sebenarnya, WooCommerce adalah alat yang sangat kuat dan mudah diperluas. Ini memiliki banyak kait yang dapat digunakan untuk hampir semua hal, dan itulah yang membuat WooCommerce begitu baik. Berikut adalah daftar cuplikan yang saya tulis atau adaptasi selama beberapa bulan terakhir; semua cuplikan ini harus ditempelkan di file functions.php dalam folder tema Anda:


1 – Tambahkan Jenis Pembayaran ke Email Admin WooCommerce

add_action ('woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2);

function add_payment_method_to_admin_new_order ($ order, $ is_admin_email) {
if ($ is_admin_email) {
gaung

Cara Pembayaran: ' $ order-> payment_method_title. '

'; } }

2 – Up-menjual produk per halaman / per baris

remove_action ('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15);
add_action ('woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15);

if (! function_exists ('woocommerce_output_upsells')) {
function woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // Tampilkan 3 produk dalam baris 3
}
}

3 – Hapus kategori produk dari halaman toko

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

function custom_pre_get_posts_query ($ q) {

if (! $ q-> is_main_query ()) kembali;
if (! $ q-> is_post_type_archive ()) kembali;

if (! is_admin () && is_shop () &&! is_user_logged_in ()) {

$ q-> set ('tax_query', array (array (
'taxonomy' => 'product_cat',
'bidang' => 'siput',
'terms' => array ('color', 'flavour', 'spices', 'vanilla'), // Jangan tampilkan produk dalam kategori ini di halaman toko
'operator' => 'TIDAK DI DALAM'
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}

4 – Cepat menerjemahkan string apa pun

add_filter ('gettext', 'translate_text');
add_filter ('ngettext', 'translate_text');

function translate_text ($ diterjemahkan) {
$ translation = str_ireplace ('Pilih dan opsi', 'Pilih', $ diterjemahkan);
mengembalikan $ diterjemahkan;
}

5 – Kecualikan kategori dari widget kategori WooCommerce

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

function woo_product_cat_widget_args ($ cat_args) {

$ cat_args ['exclude'] = array ('16 ');

kembalikan $ cat_args;
}

6 – Tambahkan bidang khusus ke variasi produk

// Bidang Tampilan
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS untuk menambahkan bidang untuk variasi baru
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Simpan bidang variasi
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

function variable_fields ($ loop, $ variasi_data) {?>


7 - Ganti "Stok Habis" dengan "terjual"

add_filter ('woocommerce_get_avilities', 'availability_filter_func');

function availability_filter_func ($ ketersediaan)
{
$ ketersediaan ['ketersediaan'] = str_ireplace ('Kehabisan persediaan', 'Dijual', $ ketersediaan ['ketersediaan']);
mengembalikan $ ketersediaan;
}

8 - Tampilkan "produk sudah ada di troli" bukan tombol "tambahkan ke troli"

/ **
* Ubah teks tambah ke keranjang pada halaman produk tunggal
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');

function woo_custom_cart_button_text () {

global $ woocommerce;

foreach ($ woocommerce-> cart-> get_cart () sebagai $ cart_item_key => $ values) {
$ _product = $ values ​​['data'];

if (get_the_ID () == $ _product-> id) {
return __ ('Sudah ada di troli - Tambahkan Lagi?', 'woocommerce');
}
}

return __ ('Tambahkan ke troli', 'woocommerce');
}

/ **
* Ubah teks tambah ke keranjang pada arsip produk
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

function woo_archive_custom_cart_button_text () {

global $ woocommerce;

foreach ($ woocommerce-> cart-> get_cart () sebagai $ cart_item_key => $ values) {
$ _product = $ values ​​['data'];

if (get_the_ID () == $ _product-> id) {
return __ ('Sudah ada di troli', 'woocommerce');
}
}

return __ ('Tambahkan ke troli', 'woocommerce');
}

9 - Sembunyikan produk masuk dalam tampilan kategori

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

function woo_remove_category_products_count () {
kembali;
}

10 - Buat bidang checkout akun diperlukan

add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');

function woo_filter_account_checkout_fields ($ bidang) {
$ fields ['akun'] ['account_username'] ['diperlukan'] = true;
$ fields ['akun'] ['account_password'] ['required'] = true;
$ fields ['akun'] ['account_password-2'] ['diperlukan'] = true;

mengembalikan $ bidang;
}

11 - Ganti nama tab produk

add_filter ('woocommerce_product_tabs', 'woo_rename_tab', 98);
function woo_rename_tab ($ tabs) {

$ tabs ['description'] ['title'] = 'Info lebih lanjut';

mengembalikan $ tab;
}

12 - Daftar Kategori produk WooCommerce

$ args = array (
'number' => $ number,
'orderby' => $ orderby,
'order' => $ order,
'hide_empty' => $ hide_empty,
'include' => $ id
);

$ product_categories = get_terms ('product_cat', $ args);

$ count = count ($ product_categories);
if ($ count> 0) {
gema "";
}

13 - Ganti judul halaman toko

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

function woo_shop_page_title ($ page_title) {

if ('Shop' == $ page_title) {
return "Judul baru saya";
}
}

14 - Ubah judul widget

/ *
* Ubah judul widget
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

function woo_widget_title ($ title, $ instance, $ id_base) {

if ('onsale' == $ id_base) {
return "Judul baru saya";
}
}

15 - Hapus pengaturan default WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

function woo_remove_catalog_options ($ catalog) {

tidak disetel ($ katalog [23]); // Potong nol (tidak)
tidak disetel ($ katalog [22]); // 2 desimal
tidak disetel ($ katalog [21]); // desimal sep (.)
tidak disetel ($ katalog [20]); // ribu sep (,)
tidak disetel ($ katalog [19]); // posisi mata uang (kiri)
tidak disetel ($ katalog [18]); // posisi mata uang (kiri)
tidak disetel ($ katalog [5]); // ajax tambahkan ke troli (tidak)

mengembalikan $ katalog;
}

16 - Ubah "dari" alamat email

function woo_custom_wp_mail_from () {
global $ woocommerce;
kembalikan html_entity_decode ('[email protected]');
}
add_filter ('wp_mail_from', 'woo_custom_wp_mail_from', 99);

17 - Dekode dari nama dalam email WooCommerce

function woo_custom_wp_mail_from_name () {
global $ woocommerce;
kembalikan html_entity_decode (get_option ('woocommerce_email_from_name'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

function woo_custom_wp_mail_from () {
global $ woocommerce;
kembalikan html_entity_decode (get_option ('woocommerce_email_from'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

18 - Mengembalikan id produk unggulan

function woo_get_featured_product_ids () {
// Muat dari cache
$ Feature_product_ids = get_transient ('wc_featured_products');

// Cache yang valid ditemukan
if (false! == $ Feature_product_ids)
kembalikan $ Feature_product_ids;

$ Feature = get_posts (array (
'post_type' => array ('produk', 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'publikasikan',
'meta_query' => array (
Himpunan(
'key' => '_visibilitas',
'value' => array ('katalog', 'terlihat'),
'bandingkan' => 'IN'
),
Himpunan(
'key' => '_featured',
'value' => 'yes'
)
),
'bidang' => 'id => induk'
));

$ product_ids = array_keys ($ Feature);
$ parent_ids = array_values ​​($ Featured);
$ Feature_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ('wc_featured_products', $ Feature_product_ids);

kembalikan $ Feature_product_ids;
}

19 - Tambahkan bidang khusus untuk mengedit halaman alamat

// tambahkan bidang untuk mengedit halaman alamat
function woo_add_edit_address_fields ($ bidang) {

$ new_fields = array (
'date_of_birth' => array (
'label' => __ ('Tanggal lahir', 'woocommerce'),
'wajib' => salah,
'class' => array ('form-row'),
),
);

$ fields = array_merge ($ fields, $ new_fields);

mengembalikan $ bidang;

}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - Menampilkan kode singkat katalog penjualan produk

function woocommerce_sale_products ($ atts) {

global $ woocommerce_loop;

ekstrak (shortcode_atts (array (
'per_page' => '12',
'kolom' => '4',
'orderby' => 'date',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['kolom'] = $ kolom;

$ args = array (
'post_type' => 'produk',
'post_status' => 'publikasikan',
'ign_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'order' => $ order,
'meta_query' => array (
Himpunan(
'key' => '_visibilitas',
'value' => array ('katalog', 'terlihat'),
'bandingkan' => 'IN'
),
Himpunan(
'key' => '_sale_price',
'value' => 0,
'bandingkan' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'shop');
wp_reset_query ();

return ob_get_clean ();
}

add_shortcode ('sale_products', 'woocommerce_sale_products');

21 - Memiliki produk obral

function woo_have_onsale_products () {

global $ woocommerce;

// Dapatkan produk yang dijual
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

if (! empty ($ product_ids_on_sale)) {
kembali benar;
} lain {
return false;
}

}

// Contoh:
if (woo_have_onsale_products ()) {
gema 'memiliki produk yang dijual';
} lain {
gema 'no onsale product';
}

22 - Tetapkan jumlah pesanan minimum

add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
function wc_minimum_order_amount () {
global $ woocommerce;
$ minimum = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Anda harus memesan dengan minimum% s untuk melakukan pemesanan.', $ minimum));
}
}

23 - Pesan berdasarkan harga, tanggal atau judul di halaman toko

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

fungsi custom_default_catalog_orderby () {
tanggal pengembalian'; // Bisa juga menggunakan judul dan harga
}

24 - Redirect tambahkan ke tombol troli ke halaman checkout

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout () {
global $ woocommerce;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
mengembalikan $ checkout_url;
}

25 - Tambahkan penerima email saat pesanan selesai

function woo_extra_email_recipient ($ penerima, $ objek) {
$ penerima = $ penerima. ', [email protected]';
mengembalikan $ penerima;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

Dan ... itu dia! Saya harap Anda menemukan potongan ini bermanfaat, semuanya telah diuji dan semuanya bekerja dengan baik, tetapi jika Anda mengalami masalah, beri tahu saya bagian komentar. Selamat bersenang-senang! ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map