Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 如何获取商业订单产品的类别名称或id_Wordpress_Woocommerce - Fatal编程技术网

Wordpress 如何获取商业订单产品的类别名称或id

Wordpress 如何获取商业订单产品的类别名称或id,wordpress,woocommerce,Wordpress,Woocommerce,我有下面的功能,可以在用户购买某些产品时更改用户的角色,但是我不想列出特定的产品id,我只想使用这些产品的类别名称或id。这样,如果我们在该类别中添加新产品,我就不必记得将其添加到此功能中。此功能特定于某个类别,因此订单中是否有其他类别的其他产品并不重要 function lgbk_add_member( $order_id ) { $order = new WC_Order( $order_id ); $items = $order->get_items();

我有下面的功能,可以在用户购买某些产品时更改用户的角色,但是我不想列出特定的产品id,我只想使用这些产品的类别名称或id。这样,如果我们在该类别中添加新产品,我就不必记得将其添加到此功能中。此功能特定于某个类别,因此订单中是否有其他类别的其他产品并不重要

function lgbk_add_member( $order_id ) {
    $order = new WC_Order( $order_id );
    $items = $order->get_items();

    foreach ( $items as $item ) {
        $product_name = $item['name'];
        $product_id = $item['product_id'];
        $product_variation_id = $item['variation_id'];

        if ( $order->user_id > 0 && $product_id == '7' ) {
            update_user_meta( $order->user_id, 'paying_customer', 1 );
            $user = new WP_User( $order->user_id );

            // Remove role
            $user->remove_role( 'expired' ); 

            // Add role
            $user->add_role( 'customer' );
            }
        }
    }

    add_action( 'woocommerce_order_status_completed', 'lgbk_add_member' );

您必须使用
wp\u get\u post\u terms
获取任何产品的类别id,如下所示:

$term_list = wp_get_post_terms($product_id, 'product_cat', array('fields' => 'ids'));

我只是获取分配给此特定产品的类别id,您也可以获取名称。

您可以使用此函数获取产品类别名称-

function get_product_category_name_by_id( $category_id ) {
  $term = get_term_by( 'id', $category_id, 'product_cat', 'ARRAY_A' );
  return $term['name'];
}

$product_category = get_product_category_name_by_id( $your_category_id );
谢谢