php 用 AJAX 刷新内容后获取带有分类ID的woocommerce面包

kmynzznz  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(111)

有没有办法在用 AJAX 更新页面后将分类ID传递到Woocommerce面包屑。我用ajax更新页面后,包括woocommerce_breadcrumb()函数,面包屑只显示“主页”,但应该显示正确的分类。
我尝试过像这样将分类信息传递给我的自定义breadcrumb函数。

function get_breadcrumb_with_id($taxonomy_id){
    // Get the taxonomy object
$taxonomy = get_term_by( 'id', $taxonomy_id, 'product_cat' );

// Set up the breadcrumb arguments
$args = array(
    'delimiter'   => ' > ',
    'wrap_before' => '<nav class="woocommerce-breadcrumb" itemprop="breadcrumb">',
    'wrap_after'  => '</nav>',
    'before'      => '',
    'after'       => '',
    'home'        => _x( 'Home', 'breadcrumb', 'woocommerce' ),
    'taxonomy'    => $taxonomy->taxonomy,
    'term'        => $taxonomy->slug,
);

// Display the breadcrumb
return woocommerce_breadcrumb( $args );
}
sgtfey8w

sgtfey8w1#

我做了一个自定义Woocommerce面包屑功能作为这个问题的变通方案。这只在2个级别上工作。所以它看起来像这个主页〉母猫(如果有一个)〉当前猫。

function custom_woocommerce_breadcrumb($term)
    {
            // Get the shop page id and URL
        $shop_page_id = get_option('woocommerce_shop_page_id');
        $shop_page_url = get_permalink($shop_page_id);
    
        $html = '<nav class="woocommerce-breadcrumb">
        <a href="'.$shop_page_url.'">'.__('Home','myshop').'</a>
        <span class="breadcrumb--delimiter"> &gt; </span>';
    
        if ($term->parent > 0) :
            $parentTerm = get_term($term->parent, 'product_cat');
            $html .= '<a href="' . get_term_link($term->parent, 'product_cat') . '">' . $parentTerm->name . '</a>
          <span class="breadcrumb--delimiter"> &gt; </span>';
        endif;
    
        $html .= $term->name . '
        </nav>';
    
        echo $html;
    }

调用函数并传入术语

$object = get_queried_object();
$objectId = $object->term_id;
$term = get_term($objectId, 'product_cat');
custom_woocommerce_breadcrumb($term);

相关问题