how to get product attributes from wordpress database

后端 未结 3 1265
走了就别回头了
走了就别回头了 2020-12-29 16:29

Writing custom code to create product detail page with wordpress database.

I have displayed product title, desc, price, stock, etc and got stuck up with product attr

相关标签:
3条回答
  • 2020-12-29 16:34

    $args = array( 'post_type' => 'product','' ); $products = get_posts( $args );

         foreach ($products as $product) {
            $data = get_post_meta($product->ID);            
            $pr['regular_price'] = $data['_regular_price']['0'];
            $pr['sale_price'] = $data['_sale_price']['0'];
    
    0 讨论(0)
  • 2020-12-29 16:39

    I took a little bit of a different approach, I created a stored procedure in my database that will return all terms associated with a woocommerce product. I decided to go this route because i can call the procedure from my wordpress site and the desktop app I am creating without having to write the function in two different languages.

    Though I'd post it here for others to use.

    CREATE DEFINER=`database_name_here`@`%` PROCEDURE `get_product_attributes`(IN ProductName TEXT)
    BEGIN
    SELECT DISTINCT
         p.post_title AS 'Product Name',
         t.name AS 'Term Name',
         tt.taxonomy AS 'Term Type',
         tt.description AS 'Term Description'
    FROM
         wp_posts AS p
    INNER JOIN
         wp_term_relationships AS tr ON p.id = tr.object_id
    INNER JOIN
         wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
    INNER JOIN
         wp_terms AS t ON t.term_id = tt.term_id
    WHERE
         p.post_title= ProductName
    AND
         p.post_type = 'product';
    END
    
    0 讨论(0)
  • 2020-12-29 16:43

    Product attributes are stored in two locations - in wp_terms, wp_term_taxonomy and wp_term_relationships (that's the first place - each attribute is preceded by pa_ for its taxonomy name - e.g. if you have a color attribute, it's under pa_color) then also as a PHP serialized array in wp_postmeta under '_product_attributes' meta_key.

    You can find the method to construct the seriliazed attributes array here:

    https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-ajax.php

    Look for function save_attributes() and add_attribute to see how the serialized array is constructed.

    Update: Later versions of wooCommerce also have a serialized array in wp_options under the _transient_wc_attribute_taxonomies key and a new table called wp_woocommerce_attribute_taxonomies.

    0 讨论(0)
提交回复
热议问题