تابع ووکامرسی wc_terms_clauses افزودن ترم به لیست get_terms

تابع ووکامرسی wc_terms_clauses – افزودن ترم به لیست get_terms
Syntax – سینتکس
(array) wc_terms_clauses( (array) $clauses, (array) $taxonomies, (array) $args );
Parameters – پارامتر ها (3)
- 1- $clauses (array)
- 2- $taxonomies (array)
- 3- $args (array)
Usage – نحوه استفاده
if ( !function_exists( 'wc_terms_clauses' ) ) {
require_once ABSPATH . PLUGINDIR . 'woocommerce/includes/wc-term-functions.php';
}
// The clauses.
$clauses = array();
// The taxonomies.
$taxonomies = array();
// The args.
$args = array();
// NOTICE! Understand what this does before running.
$result = wc_terms_clauses($clauses, $taxonomies, $args);
Defined – محل تعریف
/includes/wc-term-functions.php
function wc_terms_clauses( $clauses, $taxonomies, $args ) {
global $wpdb;
// No sorting when menu_order is false.
if ( isset( $args['menu_order'] ) && ( false === $args['menu_order'] || 'false' === $args['menu_order'] ) ) {
return $clauses;
}
// No sorting when orderby is non default.
if ( isset( $args['orderby'] ) && 'name' !== $args['orderby'] ) {
return $clauses;
}
// No sorting in admin when sorting by a column.
if ( is_admin() && isset( $_GET['orderby'] ) ) {
return $clauses;
}
// No need to filter counts
if ( strpos( 'COUNT(*)', $clauses['fields'] ) !== false ) {
return $clauses;
}
// WordPress should give us the taxonomies asked when calling the get_terms function. Only apply to categories and pa_ attributes.
$found = false;
foreach ( (array) $taxonomies as $taxonomy ) {
if ( taxonomy_is_product_attribute( $taxonomy ) || in_array( $taxonomy, apply_filters( 'woocommerce_sortable_taxonomies', array( 'product_cat' ) ) ) ) {
$found = true;
break;
}
}
if ( ! $found ) {
return $clauses;
}
// Meta name.
if ( ! empty( $taxonomies[0] ) && taxonomy_is_product_attribute( $taxonomies[0] ) ) {
$meta_name = 'order_' . esc_attr( $taxonomies[0] );
} else {
$meta_name = 'order';
}
// Query fields.
$clauses['fields'] = 'DISTINCT ' . $clauses['fields'] . ', tm.meta_value';
// Query join.
if ( get_option( 'db_version' ) < 34370 ) {
$clauses['join'] .= " LEFT JOIN {$wpdb->woocommerce_termmeta} AS tm ON (t.term_id = tm.woocommerce_term_id AND tm.meta_key = '" . esc_sql( $meta_name ) . "') ";
} else {
$clauses['join'] .= " LEFT JOIN {$wpdb->termmeta} AS tm ON (t.term_id = tm.term_id AND tm.meta_key = '" . esc_sql( $meta_name ) . "') ";
}
// Default to ASC.
if ( ! isset( $args['menu_order'] ) || ! in_array( strtoupper( $args['menu_order'] ), array( 'ASC', 'DESC' ) ) ) {
$args['menu_order'] = 'ASC';
}
$order = "ORDER BY tm.meta_value+0 " . $args['menu_order'];
if ( $clauses['orderby'] ) {
$clauses['orderby'] = str_replace( 'ORDER BY', $order . ', ', $clauses['orderby'] );
} else {
$clauses['orderby'] = $order;
}
return $clauses;
}
versions – نسخه ها
از نسخه : 3.0.2
نسخه فعلی : 3.0.6
دیگر نسخه ها : 3.0.6 , 3.0.5 , 3.0.4 , 3.0.3 , 3.0.2
ارسال نظر