Created the wc_get_product_id_by_sku() function

This commit is contained in:
claudiosmweb 2014-11-27 10:31:56 -02:00
parent 7e8365bf94
commit 15996a1dee
2 changed files with 17 additions and 2 deletions

View File

@ -500,7 +500,7 @@ class WC_Shortcodes {
if ( ! empty( $atts['id'] ) ) {
$product_data = get_post( $atts['id'] );
} elseif ( ! empty( $atts['sku'] ) ) {
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $atts['sku'] ) );
$product_id = wc_get_product_id_by_sku( $atts['sku'] );
$product_data = get_post( $product_id );
} else {
return '';
@ -546,7 +546,7 @@ class WC_Shortcodes {
if ( isset( $atts['id'] ) ) {
$product_data = get_post( $atts['id'] );
} elseif ( isset( $atts['sku'] ) ) {
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $atts['sku'] ) );
$product_id = wc_get_product_id_by_sku( $atts['sku'] );
$product_data = get_post( $product_id );
} else {
return '';

View File

@ -523,3 +523,18 @@ function wc_product_has_unique_sku( $product_id, $sku ) {
return true;
}
}
/**
* Get product ID by SKU.
*
* @since 2.3.0
* @param string $sku
* @return int
*/
function wc_get_product_id_by_sku( $sku ) {
global $wpdb;
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
return ( $product_id ) ? intval( $product_id ) : 0;
}