25 เกร็ดเล็กเกร็ดน้อย WooCommerce ที่ดีที่สุดของฉันสำหรับ WordPress

  1. 1. กำลังอ่าน: 25 เกร็ดเล็กเกร็ดน้อย WooCommerce ที่ดีที่สุดของฉันสำหรับ WordPress
  2. 2. 25 ตัวอย่างโค้ด WooCommerce ที่ดีที่สุดสำหรับ WordPress ตอนที่ 2

เวลาผ่านไป … มันเป็นเวลา 6 เดือนแล้วที่ฉันเริ่มทำงานให้กับ WooThemes ในฐานะช่างเทคนิคการสนับสนุนเต็มเวลาของ WooCommerce ในช่วง 6 เดือนนี้ฉันเรียนรู้มากมายเกี่ยวกับ WooCommerce และฉันเขียนรหัสจำนวนมาก (อ่าน มาก!) ตัวอย่างข้อมูลที่เกี่ยวข้องกับ WooCommerce จริงๆแล้ว WooCommerce เป็นเครื่องมือที่ทรงพลังและสามารถขยายได้อย่างง่ายดาย มีตะขอมากมายที่สามารถใช้ได้กับเกือบทุกอย่างและนั่นคือสิ่งที่ทำให้ WooCommerce ดีมาก นี่คือรายการตัวอย่างที่ฉันเขียนหรือดัดแปลงในช่วงหลายเดือนที่ผ่านมา ตัวอย่างทั้งหมดเหล่านี้จะต้องวางในไฟล์ functions.php ภายในโฟลเดอร์ธีมของคุณ:


Contents

1 – เพิ่มประเภทการชำระให้กับอีเมลผู้ดูแลระบบ WooCommerce

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

ฟังก์ชั่น add_payment_method_to_admin_new_order ($ order, $ is_admin_email) {
ถ้า ($ is_admin_email) {
echo '

วิธีการชำระเงิน: ' $ order-> payment_method_title '

'; } }

2 – ขายผลิตภัณฑ์ต่อหน้า / ต่อบรรทัด

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')) {
ฟังก์ชั่น woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // แสดงผลิตภัณฑ์ 3 รายการในแถวที่ 3
}
}

3 – ลบหมวดหมู่สินค้าออกจากหน้าร้านค้า

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

ฟังก์ชัน custom_pre_get_posts_query ($ q) {

if (! $ q-> is_main_query ()) ส่งคืน;
if (! $ q-> is_post_type_archive ()) ส่งคืน;

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

$ q-> set ('tax_query', อาร์เรย์ (อาร์เรย์ (
'taxonomy' => 'product_cat',
'field' => 'กระสุน',
'terms' => array ('color', 'flavor', 'spices', 'vanilla'), // อย่าแสดงผลิตภัณฑ์ในหมวดหมู่เหล่านี้ในหน้าร้านค้า
'operator' => 'NOT IN'
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}

4 – แปลสตริงอย่างรวดเร็ว

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

ฟังก์ชั่น translate_text ($ แปล) {
$ แปล = str_ireplace ('เลือกและตัวเลือก', 'เลือก', $ แปล);
ผลตอบแทน $ แปล;
}

5 – ยกเว้นหมวดหมู่จากวิดเจ็ตหมวดหมู่ WooCommerce

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

ฟังก์ชัน woo_product_cat_widget_args ($ cat_args) {

$ cat_args ['ไม่รวม'] = อาร์เรย์ ('16 ');

ส่งกลับ $ cat_args
}

6 – เพิ่มฟิลด์ที่กำหนดเองในรูปแบบผลิตภัณฑ์

// แสดงเขตข้อมูล
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS เพื่อเพิ่มฟิลด์สำหรับรูปแบบใหม่
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// บันทึกฟิลด์ชุดรูปแบบ
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

ฟังก์ชั่น variable_fields ($ loop, $ vari_data) {?>


7 - แทนที่“ หมด” โดย“ ขาย”

add_filter ('woocommerce_get_availability', 'Availability_filter_func');

ฟังก์ชั่น Availability_filter_func (ความพร้อม $)
{
$ Availability ['Availability'] = str_ireplace ('หมด', 'Sold', $ Availability ['Availability']);
ส่งคืนความพร้อมใช้ $
}

8 - แสดง“ สินค้าอยู่ในตะกร้าแล้ว” แทนปุ่ม“ สั่งซื้อ”

/ **
* เปลี่ยนการเพิ่มไปยังข้อความรถเข็นในหน้าผลิตภัณฑ์เดียว
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');

ฟังก์ชัน woo_custom_cart_button_text () {

$ woocommerce ทั่วโลก;

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

if (get_the_ID () == $ _product-> id) {
ส่งคืน __ ('มีอยู่ในรถเข็นแล้ว - เพิ่มอีกครั้งหรือไม่', 'woocommerce');
}
}

return __ ('ใส่ในรถเข็น', 'woocommerce');
}

/ **
* เปลี่ยนการเพิ่มลงตะกร้าข้อความในคลังสินค้า
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

ฟังก์ชั่น woo_archive_custom_cart_button_text () {

$ woocommerce ทั่วโลก;

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

if (get_the_ID () == $ _product-> id) {
ส่งคืน __ ('มีอยู่ในรถเข็นแล้ว', 'woocommerce');
}
}

return __ ('ใส่ในรถเข็น', 'woocommerce');
}

9 - ซ่อนผลิตภัณฑ์นับในมุมมองหมวดหมู่

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

ฟังก์ชัน woo_remove_category_products_count () {
กลับ;
}

10 - ทำให้ต้องกรอกข้อมูลในบัญชี

add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');

ฟังก์ชั่น woo_filter_account_checkout_fields (เขตข้อมูล $) {
$ field ['account'] ['account_username'] ['ต้องใช้'] = จริง;
$ field ['account'] ['account_password'] ['ต้องใช้'] = จริง;
$ field ['account'] ['account_password-2'] ['required'] = จริง;

ส่งกลับค่าฟิลด์
}

11 - เปลี่ยนชื่อแท็บผลิตภัณฑ์

add_filter ('woocommerce_product_tabs', 'woo_rename_tab', 98);
ฟังก์ชั่น woo_rename_tab ($ แท็บ) {

$ tabs ['description'] ['title'] = 'ข้อมูลเพิ่มเติม';

ส่งคืนแท็บ $;
}

12 - รายการหมวดหมู่ผลิตภัณฑ์ WooCommerce

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

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

$ count = count ($ product_categories);
ถ้า ($ count> 0) {
สะท้อน "";
}

13 - เปลี่ยนชื่อหน้าร้านค้า

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

ฟังก์ชั่น woo_shop_page_title ($ page_title) {

if ('Shop' == $ page_title) {
ส่งคืน "ชื่อใหม่ของฉัน";
}
}

14 - เปลี่ยนชื่อวิดเจ็ต

/ *
* เปลี่ยนชื่อวิดเจ็ต
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

ฟังก์ชั่น woo_widget_title ($ title, $ instance, $ id_base) {

if ('onsale' == $ id_base) {
ส่งคืน "ชื่อใหม่ของฉัน";
}
}

15 - ลบการตั้งค่าเริ่มต้นของ WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

ฟังก์ชั่น woo_remove_catalog_options ($ catalog) {

ไม่มีการตั้งค่า ($ แคตตาล็อก [23]); // ตัดค่าศูนย์ (ไม่)
ไม่มีการตั้งค่า ($ แคตตาล็อก [22]); // ทศนิยม 2 ตำแหน่ง
ไม่มีการตั้งค่า ($ แคตตาล็อก [21]); // sep ทศนิยม (.)
ไม่มีการตั้งค่า ($ แคตตาล็อก [20]); // thousand sep (,)
ไม่มีการตั้งค่า ($ แคตตาล็อก [19]); // สถานะสกุลเงิน (ซ้าย)
ไม่มีการตั้งค่า ($ แคตตาล็อก [18]); // สถานะสกุลเงิน (ซ้าย)
ไม่มีการตั้งค่า ($ แคตตาล็อก [5]); // ajax เพิ่มลงในรถเข็น (ไม่ใช่)

ส่งกลับแคตตาล็อก $;
}

16 - เปลี่ยนที่อยู่อีเมล“ จาก”

ฟังก์ชั่น woo_custom_wp_mail_from () {
$ woocommerce ทั่วโลก;
return html_entity_decode ('[email protected]');
}
add_filter ('wp_mail_from', 'woo_custom_wp_mail_from', 99);

17 - ถอดรหัสจากชื่อในอีเมล WooCommerce

ฟังก์ชั่น woo_custom_wp_mail_from_name () {
$ woocommerce ทั่วโลก;
ส่งคืน html_entity_decode (get_option ('woocommerce_email_from_name'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

ฟังก์ชั่น woo_custom_wp_mail_from () {
$ woocommerce ทั่วโลก;
ส่งคืน html_entity_decode (get_option ('woocommerce_email_from'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

18 - ส่งคืนรหัสผลิตภัณฑ์ที่แนะนำ

ฟังก์ชัน woo_get_featured_product_ids () {
// โหลดจากแคช
$ Featured_product_ids = get_transient ('wc_featured_products');

// พบแคชที่ถูกต้อง
if (false! == $ featured_product_ids)
ส่งคืน $ featured_product_ids;

$ เด่น = get_posts (อาร์เรย์ (
'post_type' => อาร์เรย์ ('ผลิตภัณฑ์', 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'เผยแพร่',
'meta_query' => อาร์เรย์ (
array (
'key' => '_visibility',
'value' => array ('แคตตาล็อก', 'มองเห็นได้'),
'เปรียบเทียบ' => 'IN'
),
array (
'key' => '_featured',
'value' => 'ใช่'
)
),
'fields' => 'id => parent'
));

$ product_ids = array_keys (รายการเด่น $);
$ parent_ids = array_values ​​($ เด่น);
$ featured_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ('wc_featured_products', $ featured_product_ids);

ส่งคืน $ featured_product_ids;
}

19 - เพิ่มฟิลด์ที่กำหนดเองเพื่อแก้ไขหน้าที่อยู่

// เพิ่มฟิลด์เพื่อแก้ไขหน้าที่อยู่
ฟังก์ชั่น woo_add_edit_address_fields (เขตข้อมูล $) {

$ new_fields = array (
'date_of_birth' => อาร์เรย์ (
'label' => __ ('วันเกิด', 'woocommerce'),
'required' => false,
'class' => array ('form-row'),
),
);

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

ส่งกลับค่าฟิลด์

}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - แสดงรหัสย่อแคตาล็อกผลิตภัณฑ์ onsale

ฟังก์ชัน woocommerce_sale_products ($ atts) {

$ woocommerce_loop ทั่วโลก

สารสกัด (shortcode_atts (array (
'per_page' => '12',
'column' => '4',
'orderby' => 'วันที่',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['column'] = $ คอลัมน์;

$ args = array (
'post_type' => 'ผลิตภัณฑ์',
'post_status' => 'เผยแพร่',
'ละเว้น_sticky_posts' '> 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'order' => $ order,
'meta_query' => อาร์เรย์ (
array (
'key' => '_visibility',
'value' => array ('แคตตาล็อก', 'มองเห็นได้'),
'เปรียบเทียบ' => 'IN'
),
array (
'key' => '_sale_price',
'value' => 0,
'เปรียบเทียบ' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'shop');
wp_reset_query ();

ส่งคืน ob_get_clean ();
}

add_shortcode ('sale_products', 'woocommerce_sale_products');

21 - มีสินค้าลดราคา

ฟังก์ชั่น woo_have_onsale_products () {

$ woocommerce ทั่วโลก;

// รับสินค้าลดราคา
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

ถ้า (! ว่างเปล่า ($ product_ids_on_sale)) {
กลับจริง
} อื่น {
กลับเท็จ
}

}

// ตัวอย่าง:
ถ้า (woo_have_onsale_products ()) {
echo 'มีสินค้าขาย';
} อื่น {
echo 'no onsale product';
}

22 - กำหนดจำนวนการสั่งซื้อขั้นต่ำ

add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
ฟังก์ชัน wc_minimum_order_amount () {
$ woocommerce ทั่วโลก;
$ ต่ำสุด = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('คุณต้องมีคำสั่งซื้ออย่างน้อย% s เพื่อทำการสั่งซื้อ', $ ขั้นต่ำ));
}
}

23 - สั่งซื้อตามราคาวันที่หรือชื่อเรื่องในหน้าร้านค้า

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

ฟังก์ชัน custom_default_catalog_orderby () {
ส่งคืน 'วันที่'; // สามารถใช้หัวเรื่องและราคา
}

24 - เปลี่ยนเส้นทางเพิ่มปุ่มรถเข็นไปที่หน้าชำระเงิน

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

ฟังก์ชั่น redirect_to_checkout () {
$ woocommerce ทั่วโลก;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
ส่งคืน $ checkout_url;
}

25 - เพิ่มผู้รับอีเมลเมื่อการสั่งซื้อเสร็จสมบูรณ์

ฟังก์ชั่น woo_extra_email_recipient (ผู้รับ $, $ วัตถุ) {
$ ผู้รับ = ผู้รับ $ ', [email protected]';
ส่งคืนผู้รับ $;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recailient', 10, 2);

และ…นั่นมัน! ฉันหวังว่าคุณจะพบตัวอย่างข้อมูลเหล่านี้มีประโยชน์พวกเขาทุกคนผ่านการทดสอบและพวกเขาทำงานได้ดี แต่ถ้าคุณประสบปัญหาใด ๆ โปรดแจ้งให้เราทราบในส่วนความคิดเห็น มีความสุข! ��

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