ืืคื ื ืฉื ืฆืืื ืืืืงืื ืฉื ืืืงืืืจืก, ืืืื ื ืกืงืืจ ืืงืฆืจื ืืืฆื ืืืงืื ืขืืืืื. ืืืงืื ืืืืจืืคืจืก ืืืคืฉืจืื ืืื ืืืืกืืฃ ืื ืืฉื ืืช ืงืื ืืื ืขืจืืืช ืงืืฆื ืืืงืืจ, ืื ืฉืืืคื ืืืชื ืืืื ืืืื ื ืขืืืจ ืืคืชืืื.
ืืฉื ื ืฉื ื ืกืืืื ืฉื ืืืงืื ืืืืจืืคืจืก: ืคืขืืืืช ืืคืืืืจืื (actions & filters). ืคืขืืืืช ืืืคืฉืจืืช ืืื ืืืืกืืฃ ืงืื ืื ืงืืืืช ืืกืืืืืช. ืคืืืืจืื ืืืคืฉืจืื ืืื ืืืฆืข ืื ืืคืืืฆืื ืขื ื ืชืื ืื ืืืืืืืจ ืขืจื ืืขืืืื.
ืืืืืืืืช ืืืืจืื ืื ืืฉืชืืฉืืช ืืงืืืฅ functions.php, ืื ืืืืฉื ืืืืืืฆืช ืืื ืืืืกืืฃ ืืืงืื ืืืชืืืื ืืืฉืืช ืฉื ืืืงืืืจืก ืืชืืกืฃ ืืืขืืื ืื ืืชืืงืืืช mu-plugins. ืื ืืืชืืืืช ืฉืืื ืืฉืจืื ืืืืคืช ืชืื ืืช.
ืืคื ื ืฉืืชื ืืืฉืืืื, ืืฉืื ืฉืชืืขื ืืืฆื ืืืฆืืจ ืชืื ืืช ืืช.
ืืืฆื ืืืฉืชืืฉ ืืืืงืื ืืคืืืืจืื?
ืืืื ืืืฉืชืืฉ ืืืืงืื ืืกืื ืคืขืืืืช, ืขืืืื ืืืคืฉ ืื ืืืขืช ืืช ืื ืงืืื ืื ืืืืง ืืชืืฆืข ืืงืืฆื ืืชืื ืืช ืื ืืชืืกืฃ ืืืืฆืื ืืช ืฉืื ืืืืืืื. ืืืชื ื ืงืืืช ืื ืืชืืฆืขืช ืืคืขืืื ืชืจืื ืืกืื ืื ืืื:
do_action('action_name');
ืืขืช ืืฉืืชื ืืืืขืื ืืช ืฉื ืืืืง ืืชื ืืืืืื ืืงืืืช ืืืืกืืฃ ืงืื ืืฉืืื ืฉืืชืืฆืข ืื ืงืืื ืื (ืืืืง ืื):
if ( ! function_exists( 'your_function_name' ) ) {
function your_function_name() {
// Your custom code goes here
}
add_action( 'action_name', 'your_function_name' );
}
ืคืืืืจืื ื ืงืจืืื ืืืืจื ืืงืื ืืืืฆืขืืช ืืงืื ืืื:
apply_filters( 'filter_name', $variable );
ืืืืชื ืืืคื ืฉืืฆืืชื ืืช ืฉื ืืคืขืืื, ืขืืืื ืืืฆืื ืืช ืฉื ืืคืืืืจ. ืืจืืข ืฉืืฆืืชื, ืชืืืื ืืืฆืืจ ืคืื ืงืฆืื ืฉืืฉื ื ืืช ืืขืจื ืืืืืืจ:
if ( ! function_exists( 'your_function_name' ) ) {
function your_function_name( $variable ) {
// Your custom code goes here
return $variable;
}
add_filter( 'filter_name', 'your_function_name' );
}
ืฉืืื ืื – ืืืงืจื ืฉื ืคืืืืจืื ืืืื ืืฉืื ืื ืชืืืืจื ืขืจื ืืืฉืื!
ืืืงืื ืืกืื ืคืืืืจ ืืืืืื ืืงืื ืืกืคืจ ืืฉืชื ืื, ืื ืจืง ืืื. ืืจืืจืช ืืืืื ืืื 1, ืื ืฉืืื ืืืฉืช ืืขืจืืื ื ืืกืคืื ืืฉ ืืฆืืื ืืช ืืืกืคืจ ืืคืจืืืจ ืืจืืืขื ื-add_filter:
apply_filter( 'filter_name', $variable1, $variable2, $variable3 );
ืืื ื ืืคืื ืงืฆืื ืืืชื ืื ื ืืืฆืขืื ืื ืืคืืืฆืื ืื ืืงืื ืืืืืืจืื ืขืจื ืืืฉ (ืืืงืจื ืฉืื ื ืืกืืื ืฉื ืฉืืืฉืช ืืืฉืชื ืื):
if ( ! function_exists( 'your_function_name' ) ) {
function your_function_name( $variable1, $variable2, $variable3 ) {
// Example custom code
$new_value = $variable1 + $variable2 + $variable3;
return $new_value;
}
add_filter( 'filter_name', 'your_function_name', 10, 3 );
}
ืฉืืื ืื ืืคืจืืืจ ืืจืืืขื (ืืกืคืจื 3) ืืงืจืืื ื add_filter.
ืืคืจืืืจ ืืฉืืืฉื ืืคืื ืงืฆืื add_filter ืืื ืืขืืืคืืช (priority). ืืื ืฉืืื ืืกืืจ ืืืืฆืืข ืืืฉืจ ืืกืคืจ ืคืื ืงืฆืืืช ืืืฆืืืืช ืืืืชื ืืืง. ืืกืคืจืื ื ืืืืื ืืืชืจ ืจืฆืื ืจืืฉืื ืื (ืืจืืจืช ืืืืื ืืื 10).
ืืืืจ ืฉืืกืืจื ื ืืืฆื ืืืงืื ืขืืืืื ืืืืจืืคืจืก, ืืืื ื ืจืื ืืกืคืจ ืืจืืงืื ืฉืืืืฉืืื ืืืืคืฉืจืื ืื ื ืืืจืืก ืืืืจืืช ืื ืชืื ืืืช ืืืฉืื ืฉื ืืชืืกืฃ ืืืงืืืจืก.
ืื ืืคืืืฆืื ืืืืงืืืจืก ืืืืฆืขืืช ืืืงืื
ืืฆืืจื ืืืืืืืืช ื ืืฆืข ืฉืื ืืืื ืืขืืื ืืื ืืช ืืจืืฉื (Shop Page) ืืืืฆืขืืช ืืืงืื ืฉื ืืืงืืืจืก. ืืืืืืืืช ืืืืืช ืขืืืืืช ืขื ืืจืกืืืช ืืืงืืืจืก ืขืืื ืืืช.
ืืืืชืจ ืืฆืืื ืื ื ืื ืื ืื ืืืงืื ืงืืืืื ืื ืจืง ืืขืืื ืืื ืืช ืืื ืขืืืจ ืื ืขืืื ืืงืืื ืืืืงืืืจืก.
1. ืืกืจืช ืคืืจืืจื ืืื ืืขืืื ืืื ืืช
ืขืืื ืืื ืืช ืฉื ืืืงืืืจืก ืืืืฆืจ ืขื ืืื ืืงืืืฅ woocommerce/templates/archive-product.php. ืื ืชืชื ื ืื ืืื ืชืืฆืื ืืช ืืงืื ืืื:
/**
* Hook: woocommerce_before_main_content.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
* @hooked WC_Structured_Data::generate_website_data() - 30
*/
do_action( 'woocommerce_before_main_content' );
ืืคืชืื ืืืงืืืจืก ืืฆืืื ืื ืื ืืืืง woocommerce_before_main_content ืงืืจื ืืืกืคืจ ืคืื ืงืฆืืืช, ืืืื woocommerce_breadcrumb ืขื ืขืืืคืืช 20. ืืื ืืืกืืจ ืืช ืคืืจืืจื ืืืื:
// Remove WooCommerce Breadcrumbs
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
2. ืืกืจื ืฉื ืืืืชืจืช ืืขืืื ืืื ืืช
ืขื ืื ืช ืืืกืืจ ืืช ืืืืชืจืช ืืขืืื ืืื ืืช ื ืืชื ืืืฉืชืืฉ ืืงืื ืืื:
if ( ! function_exists( 'hide_woocommerce_page_title' ) ) {
/**
* Hide WooCommerce Shop page title
*/
function hide_woocommerce_page_title( $visibility ) {
// Default $visibility value is true
$visibility = false;
return $visibility;
}
add_filter( 'woocommerce_show_page_title', 'hide_woocommerce_page_title' );
}
ืืืืชื ืืืื ืืืฆืืจื ืคืฉืืื ืืืชืจ ื ืืชื ืืืฉืชืืฉ ืืงืื ืืื:
if ( ! function_exists( 'hide_woocommerce_page_title' ) ) {
/**
* Hide WooCommerce page title
*/
function hide_woocommerce_page_title() {
return false;
}
add_filter( 'woocommerce_show_page_title', 'hide_woocommerce_page_title' );
}
ืฉืชื ืืืืฉืืช ืขืืืืืช. ืืจืืฉืื ื ืืืจืกืช ืืช ืขืจื ืืืฉืชื ื, ืืืฉื ืืื ืคืฉืื ืืืืืจื false ืืฉืืจืืช.
3. ืฉืื ืื ืืกืคืจ ืืืืฆืจืื ืืขืืื ืืื ืืช
ืืื ืืฉื ืืช ืืช ืืกืคืจ ืืืืฆืจืื ืืืืฆืืื ืืขืืื ืืื ืืช, ืืฉืชืืฉื ืืงืื ืืื. ืฉื ื ืืช ืืขืจื ืืืืืืจ ืืืกืคืจ ืืจืฆืื:
if ( ! function_exists( 'change_woocommerce_products_per_page' ) ) {
/**
* Change number of products on main shop page
*/
function change_woocommerce_products_per_page()
{
return 9;
}
add_filter('loop_shop_per_page', 'change_woocommerce_products_per_page', 8);
}
4. ืขืืืคืช ืืืืฆืจืื ืืื ืืช ืืืืื ื HTML ืืืฉืื
ืืืื ืืืืกืืฃ Markup ื ืืกืฃ ืกืืื ืจืฉืืืช ืืืืฆืจืื ืืขืืื ืืื ืืช ืขืืื ื ืืืฉืชืืฉ ืืฉืชื ืคืื ืงืฆืืืช. ืืจืืฉืื ื ืชืืกืืฃ div ืคืืชื ืืคื ื ืืจืฉืืื ืืืฉื ืืื ืชืืกืืฃ ืืช ื div ืืกืืืจ ืืกืืคื.
if ( ! function_exists( 'additional_markup_before_products' ) ) {
/**
* Adding additional markup before product list
*/
function additional_markup_before_products() {
echo '<div class="my-custom-class"><h1>' .esc_html__( 'Custom Title Before Products' ) . '</h1>';
}
add_action( 'woocommerce_before_shop_loop', 'additional_markup_before_products', 40 );
}
ืฉืืื ืื ืฉืงืืขื ื ืขืืืคืืช 40, ืืืืืื ืฉืืืงืืืจืก ืืืจ ืืฆืืืื ืคืื ืงืฆืืืช ื-woocommerce_before_shop_loop ืขื ืขืืืคืืืืช 10, 20 ื-30. ืืคืื ืงืฆืื ืฉืื ื ืจืฆื ืืืจืืื:
if ( ! function_exists( 'additional_markup_after_products' ) ) {
/**
* Adding additional markup after product list
*/
function additional_markup_after_products() {
echo '</div>';
}
add_action( 'woocommerce_after_shop_loop', 'additional_markup_after_products', 5 );
}
5. ืืืกืคืช ืชืืืช ืดืืื ืืืืืืืด ืขื ืืืฆืจ [ ืฉืืื ืืืืืื ืืืืื ๐ ]
ืืืืื ืื ืืฉืชืืฉืช ืืืืืืืงื global $product ืืืืชืืื is_in_stock() ืืื ืืืืืง ืืื ืืืืฆืจ ืงืืื ืืืืื. ืื ืื, ื ืฆืื ืชืืืช "ืืื ืืืืืื":
/**
* Adding sold badge for product item
*/
if (!function_exists('add_sold_badge_mark')) {
function add_sold_badge_mark()
{
global $product;
if (!$product->is_in_stock()) {
echo '<span class="out-of-stock">' . esc_html__('Sold') . '</span>';
}
}
add_action('woocommerce_before_shop_loop_item_title', 'add_sold_badge_mark');
}
ืชื ื ืืื ืืคืืกื ืืื ืื ืืขื ืืื ืืชืื ืืืฆื ืืืชืืืืก ืืืืฆืจืื ืฉืืืื ืืืืืื ืืืืื ืช SEO ืืืืืืช ืืฉืชืืฉ.
6. ืฉืื ื ื Markup ืฉื ืืืชืจืช ืืืืฆืจ
ืื ืชืชื ื ืืื ืืงืืืฅ content-product.php ืชืจืื ืื ืืืชืจืช ืืืืฆืจ ื ืืกืคืช ืขื ืืืื ืืืืง woocommerce_shop_loop_item_title ืืืืืฆืขืืช ืืคืื ืงืฆืื woocommerce_template_loop_product_title:
/**
* Hook: woocommerce_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_product_title - 10
*/
do_action( 'woocommerce_shop_loop_item_title' );
ืื ืชืชื ื ืืื ืืคืื ืงืฆืื, ืชืจืื ืื ืืคืชืื ืืืงืืืจืก ืืืืฆืจืื ืืช ืืชืืืช ืืฆืืจื ืืฉืืจื ืืืื ื ืืกืคืงืื ืคืืืืจ ืืืฉืื ืืฉื ืืช ืืืชื.
ืื ืืฉื ื ืฉืชื ืืจืืื ืืืฉืช ืืื, ืืจืืฉืื ื ืืื ืืืจืืก ืืช ืืคืื ืงืฆืื ืืฉืืืืชื ืขื ืืื ืืงืืืฅ. ืืืื ืืขืฉืืช ืืืช ืืขืชืืงื ืืช ืืคืื ืงืฆืื ืืืื ืืืชืืกืฃ ืืืงืืืจืก ืืงืืืฅ functions.phpย ืืชืื ืืช ืืืช ืฉืืื:
function woocommerce_template_loop_product_title() {
echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2>';
}
ืืฉื ื ืืช ืฉื ืืงืืืก ืืจืฆืื ืื:
function woocommerce_template_loop_product_title() {
echo '<h2 class="savvy-title">' . get_the_title() . '</h2>';
}
ืืคืฉืจืืช 2 (ืืืืืฆืช): ืืกืืจื ืืช ืืคืขืืื ืืืงืืจืืช ืืืฆืืืื ืคืื ืงืฆืื ืืฉืืื. ืืืฉื ืื ืืื ืขืช ืงืื ืคืืืงืืื ืืขืืืื ืื ืขืชืืืืื ืฉื ืืืงืืืจืก:
if ( ! function_exists( 'add_product_item_title' ) ) {
/**
* Adding product item title markup
*/
function add_product_item_title() {
echo '<h4 class="my-product-item-title">' . get_the_title() . '</h4>';
}
add_action( 'woocommerce_shop_loop_item_title', 'add_product_item_title' );
}
remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title' );
ืฉืืืืช ื ืคืืฆืืช
ืกืืืื
ืืืงืื ืฉื ืืืงืืืจืก ืื ืืืกืืก ืืืชืืื ืืืฉืืช ืฉื ืืื ืืช ืืืืืืืืืช ืฉืืื ืืื ืฉืื ืื ืงืืฆื ืืืืื ืฉื ืืชืืกืฃ. ืืื ื ืฉื ืืืืื ืืื ืคืขืืืืช ืืคืืืืจืื, ืืืื ืขืืืคืืช ืฉืืืืช ืืกืืจ ืืืืฆืืข, ืืืคืฉืจืช ืืื ืืฉื ืืช ืืืขื ืื ืืืื ืืืืงืืืจืก.
ืืืื ื ืืขืืืงื ืืืชืจ ืฉื ืืืงืื ืืืืคื ืืืื, ืขืืื ื ืืืืจืื ืฉืื ื ืขื ืืืงืื ืืืืจืืคืจืก. ืืืกืงื ื ืืขืืงืจืืช: ืืฉืชืืฉื ืชืืื ืืืืงืื ืืืงืื ืืขืจืื ืชืื ืืืช ืฉื ืืืงืืืจืก ืืฉืืจืืช, ืืืงืื ืืช ืืืชืืืืช ืฉืืื ืืชืืกืฃ ืืชืืืืงื ืืจืืืช ืืืื.
ื ืืืจ, ืื ื ืืืื ืืืจื ืืื ืื ืืืืกืืฃ ืฉืื ืืืืื ืืืืื ืฉื ืฉืื?
ืืงืื ืขืืื ืขื ืืืืืงืืจื ืืื ืจืืฆืื ืืงืื ืืืืื ืื ืืช ืื ืชืื ืื ืฉื ืืืืืืงื ืืื Transaction Response Code
ืืฉืื ื ืงืจื easycard Transaction ID ืื Response Code.
ืืขืืื!
ืชืืื ืจืื ืขืืจืช ืื ืืืื
ืชืืื ืขื ืืืืืจ!
ืืฉ ืืคืฉืจืืช ืืืืกืืฃ ืชื ืฉื "ืืืฉ" ืืืงืื "ืืืฆืข" (ืื ืชืืกืคืช ืฉื ืืชื) ืืขืืื ืืจืืฉื ืฉื ืืื ืืช (ืื ืืขืืื ืืืืฆืจ)?
ืืฉืื ืืชืืืื.
ืชืืื
ืืื ืืืื,
ืื, ืืฉ ืืคืฉืจืืช. ืจืื ืืืฉื ืืช ืืชื ืดืืืืืฅืด ืื ืดืืืฉืด ืฉืืืกืคืชื ืืืื ืืืฆืจืื ืืื ืืช ืืืื. ืืฆืขืจื ืืืกืืจ ืืื ืืขืืจ ืืกืงืืค ืฉื ืืชืืืืืช, ืื ืืชื ืืืืื ืืืชืืื ืืคืืกื ืืื. ืื ืชืจืฆื – ืืืื ืืขืืืจ ืื ืืชืฉืืื…
ืืืฆืืื!
ืืื ืืฉ ืืคืฉืจืืช ืืืืืืจ ืืืืจื ืืฉืืื ืฉืืืืืื ืืชืืืช? ืืืช ืืืืจืช ืื ืื ื ืจืืฆื ืฉืืืืืืจ ืืกืืื ืืืฉืืื ืืขืื X ืืืืืืืจ ืืืจ ืืขืื Y, ืืื ื ืจืืฆื ืฉืืืงืืืืจืก ืืืืืจ ืืื ืืคื ืืืชืืืช ืืช ืขืืืช ืืืฉืืื?
ืชืืื, ืืืืจืืืช ืฉืื ืืืืืืืช ๐