Tài nguyên Dành cho Nhà phát triển

Linh Dinh March 8, 2024 No Comments

Trang này được viết dành cho các nhà phát triển WooCommerce muốn tùy chỉnh Datalayer cho WooCommerce. Yêu cầu hiểu biết về PHP và phát triển WordPress.

Tóm tắt

Hướng dẫn này chỉ ra các hook có sẵn cho bạn nếu bạn muốn sửa đổi hành vi mặc định của Datalayer cho WooCommerce.
Điều quan trọng là phải rõ ràng là chúng tôi sẽ không đưa ra các ví dụ hoàn chỉnh về khả năng, mà chỉ là ý tưởng về những gì có thể thực hiện.
Chúng tôi tin rằng trong hầu hết các trường hợp, bạn không cần sử dụng các hook, hãy cẩn thận khi sử dụng chúng, và chỉ sử dụng chúng nếu bạn thực sự cần chúng.

Tham khảo Filter

TÊN MÔ TẢ
datalayer_before_impressions_loop_items Kích hoạt trong category/product page trước khi bắt đầu vòng lặp sản phẩm tạo dựng datalayer.
Hook này chứa một mảng các sản phẩm (WC_Product) và có thể được sử dụng để kiểm tra thêm.
datalayer_before_checkout_loop_items Kích hoạt trong checkout pages trước khi bắt đầu vòng lặp sản phẩm tạo dựng datalayer.
Hook này chứa một mảng các sản phẩm (WC_Product) và có thể được sử dụng để kiểm tra thêm.
datalayer_before_order_loop_items Kích hoạt trong thankyou page trước khi bắt đầu vòng lặp sản phẩm tạo dựng datalayer.
Hook này chứa một mảng các sản phẩm (WC_Order_Item) và có thể được sử dụng để kiểm tra thêm.
datalayer_during_impressions_loop_items_before_push Kích hoạt trong trang category/product trang trong quá trình vòng lặp mục tạo dựng lớp dữ liệu trước khi đẩy.
Act này contains một dải của mục sẵn sàng đối với datalayer và sản phẩm (WC_Product).
Được dùng để chèn, thay đổi hoặc xóa tham số mới trong mảng ‘items’ của datalayer.
datalayer_during_checkout_loop_items_before_push Kích hoạt checkout pages trong lúc vòng lặp mục tạo dựng lớp dữ liệu trước khi đẩy.
Hook này chứa một mảng của mục sẵn sàng đối với datalayer và sản phẩm (WC_Product).
Được dùng để chèn, thay đổi hoặc xóa tham số mới trong mảng ‘items’ của datalayer.
datalayer_during_order_loop_items_before_push Kích hoạt thankyou page trong lúc vòng lặp mục tạo dựng lớp dữ liệu trước khi đẩy.
Act này contains một dải của mục sẵn sàng đối với datalayer và sản phẩm (WC_Order_Item).
Được dùng để chèn, thay đổi hoặc xóa tham số mới trong mảng ‘items’ của datalayer.

Ví dụ

datalayer_before_impressions_loop_items

Xóa một sản phẩm cụ thể trên trang chuyên mục/sản phẩm:

function my_custom_hook_datalayer_impressions_verify_product( $products ) {foreach ( $products as $key => $product ) {if($product->get_id() === 225){unset( $products[$key] );}    }$products = array_values($products);    return $products;}add_filter( 'datalayer_before_impressions_loop_items', 'my_custom_hook_datalayer_impressions_verify_product' );

Thêm một sản phẩm cụ thể vào trang chuyên mục/sản phẩm:

function my_custom_hook_datalayer_impressions_add_product( $products ) {$products[] = $new_product = new WC_Product( 175 ); // Tạo đối tượng sản phẩm mớireturn $products;}add_filter( 'datalayer_before_impressions_loop_items', 'my_custom_hook_datalayer_impressions_add_product' );

datalayer_before_checkout_loop_items

Kiểm tra nếu sản phẩm là một phần của gói WooCommerce và loại bỏ nó trong trang thanh toán:

function my_custom_hook_datalayer_checkout_verify_product( $products ) {foreach ( $products as $key => $product ) {        // Kiểm tra nếu sản phẩm là một phần của gói WooCommerce        if ( ! empty( wc_pb_get_bundled_product_map( $product['product'] ) ) ) {            // Nếu nó là một phần của gói, loại bỏ sản phẩm từ mảng            unset( $products[$key] );        }    }    return $products;}add_filter( 'datalayer_before_checkout_loop_items', 'my_custom_hook_datalayer_checkout_verify_product' );

Thêm một sản phẩm cụ thể vào trang chuyên mục/sản phẩm trong trang thanh toán:

function my_custom_hook_datalayer_checkout_add_product( $products ) {$quantity = 1;$variation_id = null;$products[] = array('quantity' => $quantity,'product'  => $new_product = new WC_Product( 225 ), // Tạo đối tượng sản phẩm mới'variation_id' => $variation_id);return $products; }add_filter( 'datalayer_before_checkout_loop_items', 'my_custom_hook_datalayer_checkout_add_product' );

datalayer_before_order_loop_items

Kiểm tra nếu sản phẩm là một phần của gói WooCommerce và loại bỏ nó trên trang cám ơn:

function my_custom_hook_datalayer_order_verify_product( $products ) {foreach ( $products->get_items() as $key => $item ) {        // Kiểm tra nếu mục là một phần của gói WooCommerce        if ( wc_pb_is_bundled_order_item( $item ) ) {            // Nếu nó là một phần của gói, loại bỏ mục từ mảng            $products->remove_item( $key );        }    }    return $products;}add_filter( 'datalayer_before_order_loop_items', 'my_custom_hook_datalayer_order_verify_product' );

Thêm một sản phẩm cụ thể trong trang cám ơn:

function my_custom_hook_datalayer_order_add_product( $products ) {$new_product_id = 225; // ID của sản phẩm muốn thêm vào$new_product = wc_get_product( $new_product_id );if ( $new_product ) {$order_item = new WC_Order_Item_Product();$order_item->set_props(array('product' => $new_product,'quantity' => 1));$products->add_item( $order_item );}    return $products;}add_filter( 'datalayer_before_order_loop_items', 'my_custom_hook_datalayer_order_add_product' );

datalayer_during_impressions_loop_items_before_push

Lấy một thuộc tính cụ thể của sản phẩm (pa_color) và thêm nó thành một tham số mới (item_category2) trong datalayer trên trang chuyên mục/sản phẩm.

function my_custom_hook_datalayer_impressions_verify_product( $datalayer, $product ) {$attribute  = $product->get_attribute('pa_color');if($attribute){$datalayer['item_category2'] = $attribute;}    return $datalayer;}add_filter( 'datalayer_during_impressions_loop_items_before_push', 'my_custom_hook_datalayer_impressions_verify_product', 10, 2 );

datalayer_during_checkout_loop_items_before_push

Lấy một thuộc tính cụ thể của sản phẩm (pa_color) và thêm nó thành một tham số mới (item_category2) trong datalayer trên trang thanh toán.

function my_custom_hook_datalayer_checkout_verify_product( $datalayer, $product ) {$attribute  = $product->get_attribute('pa_color');if($attribute){$datalayer['item_category2'] = $attribute;}    return $datalayer;}add_filter( 'datalayer_during_checkout_loop_items_before_push', 'my_custom_hook_datalayer_checkout_verify_product', 10, 2 );

datalayer_during_order_loop_items_before_push

Lấy một thuộc tính cụ thể của sản phẩm (pa_color) và thêm nó thành một tham số mới (item_category2) trong datalayer trên trang cám ơn.

function my_custom_hook_datalayer_order_verify_product( $datalayer, $product ) {$product_attributes_data = wc_get_product( $product->get_product_id() );$attribute  = $product_attributes_data->get_attribute('pa_color');if($attribute){$datalayer['item_category2'] = $attribute;}    return $datalayer;}add_filter( 'datalayer_during_order_loop_items_before_push', 'my_custom_hook_datalayer_order_verify_product', 10, 2 );

Leave a Reply

Your email address will not be published.