New custom global taxonomy for products?

Hello there,

I'm trying to register a new taxonomy for the products in MarketPress because I want these to be separated from my list of product_categories. I have used the product categories for something like "Business", "Living", "For Children", "For Moms". And I would like my new taxonomy to be product types like "Audios", "Videos", "E-books" etc.

Is it possible to do that so I will have a page like "All 'E-books' products across all sites" ?

Also, how should I name the template file for this specific page? I actually don't see it on the list provided in MarketPress:

--------------------------------------------------
Global Listings - Will only work on main site/blog
--------------------------------------------------
Product List Page
mp_global_products.php
mp_productlist.php

Product Category List Page
mp_global_category-CATEGORYSLUG.php
mp_global_category.php
mp_global_category_list.php

Product Tag List Page
mp_global_tag-TAGSLUG.php
mp_global_tag.php
mp_global_tag_list.php

Thank you!!!

  • littlemkv
    • Flash Drive

    Hi Joe,

    Thanks for the reply but the function get_the_term_list requires a post ID and it's only getting taxonomy terms that a post is in. I'm actually trying to display a list of products that are in one specific taxonomy term on one page. (ie. all E-book products in my case)

    Also, how should I name the template file for this specific page?

    Thanks for the help!

  • littlemkv
    • Flash Drive

    Sorry one more question:

    This is my code to register the taxonomy:

    register_taxonomy('product_kind',array('product'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'types' ),
    ));

    So how should I go into the taxonomy archive page exactly? I did not change any of the default MarketPress slugs (the /marketplace/, /store/, /products/ etc.). I assume the page path will be like "www.mydomain.com/types" or "www.mydomain.com/marketplace/types" or something but none of them work.

  • aecnu
    • WP Unicorn

    Greetings littlemkv,

    Since I do not know the direct answer to this question I am going to ask the lead developer of the Market Press plugin to come in here and offer his invaluable advice/advise as to the possible answer to your code questions.

    Though this may take longer then a normal ticket, I will try to get him in here asap.

    Cheers, Joe

  • Aaron
    • CTO

    So a few problems you'd have to overcome:

    - you'll need to call that register script for every blog, prob via network activated plugin

    - Taxonomies are stored per site, so if you want to have "Audios", "Videos", "E-books" available across all sites you'll need to do that manually for each, or code something in your plugin to prefill those for each site. If you need to prevent editing/deletion/adding of those, thats more custom code, prob changing the permissions for register_taxonomy call

    - Marketpress global indexer only indexes it's taxonomies, so you will need to edit it to index your new tax

    - The list global products function will need to be modified or copied and customized to be able to list by your newly indexed taxonomy.

    So not at all easy unfortunatley, mostly because of how core WP handles taxonomies.

  • nickrosener
    • Flash Drive

    Have been reading much about this.. I the entire situation with regard to heirarchy and php calls to different templates within WordPress.. my issue specifically is calling the mp_product_list.php template.. I.E.

    WHAT EVERYONE COULD REALLY BENEFIT FROM IS THIS :

    if (IS THE PRODUCT LIST PAGE (dynamically including settings)) {
    //do something
    }

    if (IS THE CART PAGE (dynamically including settings)){
    //do something
    }

    FOR ALL OF THEM. From Store to Checkout. See a sample or two:

    if ($wp_query->query_vars['pagename'] == 'cart'){
    echo '<a href="';
    echo get_option('home');
    echo '/store/">Store > <a href="';
    echo get_option('home');
    echo '/store/shopping-cart/">Cart';
    }
    if ($wp_query->query_vars['pagename'] == 'orderstatus'){
    echo '<a href="';
    echo get_option('home');
    echo '/store/">Store > <a href="';
    echo get_option('home');
    echo '/store/order-status/">Order Status';
    }

    EXCEPT THIS SHOULD ACTUALLY CALL WHAT THE MP MULTIUSER SETTINGS HAS FOR CART PRODUCTS AND STORE ETC... This type of code would help for just about anything, but I need it for Breadcrumbs, and I there is absolutely nothing for mp_product_list.php ANYWHERE -> to be called IF IS mp_product_list.php

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.