【问题标题】:WooCommerce - Add product urls to dropdown valuesWooCommerce - 将产品网址添加到下拉值
【发布时间】:2017-06-09 13:33:52
【问题描述】:

在 WooCommerce 中,我正在尝试添加一个显示所有产品的选择。我正在使用以下代码:

<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">

    <option value="">- Select Value - </option>
    <?php
        $args = array( 'post_type' => 'product' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : 
            $loop->the_post();
            echo '<option value="#">'.the_title('','',false).'</option>';
        endwhile;
    ?>

</select>

这可行,但我无法找到将产品链接也添加到选项值的方法。

我已经尝试了标准的永久链接代码和

$url = get_permalink( $product_id );

但它不起作用。

【问题讨论】:

  • 你从哪里得到的 $product_id ?在你的循环里面没有这样的东西。

标签: php wordpress woocommerce product hook-woocommerce


【解决方案1】:

此处获取产品 ID 的答案是:

$product_id = $loop->post->ID;

所以获取产品 URL 的代码可以是:

$product_id = $loop->post->ID; // Product ID
$product = wc_get_product($product_id); // WC_Product object (instance)
$product_link = $product->get_permalink( );

或者

$product_id = $loop->post->ID; // Product ID
$product_link = get_permalink( $product_id );

所以你的最终代码应该是:

<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">

    <option value="">- Select Value - </option>
    <?php
        $args = array( 'post_type' => 'product' );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : 
            $loop->the_post();
            $post_id = $loop->post->ID;
            $product = wc_get_product($post_id);
            $link = get_permalink( $post_id );
            $title = $product->get_name();
            echo '<option value="'.$link.'">'.$title.'</option>';
        endwhile;

        // Reset post data
        wp_reset_postdata();
    ?>

</select>

【讨论】:

    猜你喜欢
    • 2017-08-02
    • 2020-06-08
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多