【问题标题】:How can I echo out an Item's price in Wordpress/ Woocmerce?如何在 Wordpress/Woocommerce 中呼应商品的价格?
【发布时间】:2016-03-25 10:34:05
【问题描述】:

假设我在您将内容放入所见即所得的页面部分,我的计划是使用 php 显示一个 woocomerce 项目的价格以提取信息。我下载了这个 Plugin Insert PHP,它允许您使用特殊的短代码将 php 代码放入 WYSIWYG 部分。问题是我不是 php 方面的专家,那我该如何开始呢?

到目前为止,我已经对此进行了研究:

<?php echo $product->get_price_html(); ?>

让我们说它的 SKU 为:6-501

你会如何做一个 php 来提取那个项目的价格?

【问题讨论】:

    标签: html sql woocommerce


    【解决方案1】:

    改用get_price() 方法:

    <?php echo $product->get_price(); ?>
    

    【讨论】:

    • 但是您将如何或在哪里指定它是哪个 SKU?会不会像 get_price('6-501'); ?>
    【解决方案2】:

    WooCommerce 2.3 及更高版本有一个函数wc_get_product_id_by_sku( $sku )

    所以你可以做类似的事情,

    $sku = '6-501';
    $_product_id = wc_get_product_id_by_sku( $sku );
    $_product = new WC_Product( $_product_id );
    echo $_product->get_price_html();
    

    【讨论】:

    • 这是您需要获取$product 对象的答案。我会建议 OP 将其包装在一个简码中。 [wc_price sku="6-501"] 之类的东西。
    【解决方案3】:

    假设您使用的是Insert PHP插件,请将以下代码放在[insert_php][/insert_php]之间:

    $sku = '6-501';
    
    global $wpdb;
    $id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
    if ( $id ){
        $product = new WC_Product( $id );
        echo $product->get_price();
    }
    

    应该可以的。

    【讨论】:

    • 确实如此,太棒了,我正在尝试理解代码,以便我自己做。不确定这意味着什么 "$id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) ); "
    • 我们在这里获取产品 ID。 get_var 从 wpdb 检索变量。 SELECT post_idid 是那个变量。在WHERE 条件下,我们正在过滤特定 sku 的结果,该结果保存在 wordpress 数据库的 post_meta 表中,作为 meta_key(_sku) 和 meta_value(我们传递的值)。一旦我们得到产品的 id,我们就会得到该 id 的产品对象。该对象($product)包含get_priceMore Info。如果有效,请接受答案。
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2015-02-25
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2016-05-31
    相关资源
    最近更新 更多