对产品的所有呼叫都会返回‘FALSE’

时间:2019-05-03 作者:johgehl

我正在bool(false) 作为对产品的回访,使用产品ID。根据我使用的代码,我还NULL0 返回但从不返回任何产品数据。

我试过。。。

$_pf = new WC_Product_Factory();
$product = $_pf->get_product($id);
$_pf = new WC_Product_Factory();
$product = $_pf->wc_get_product($id);
$product = new WC_Product(\'1651\');
我甚至试着一直打电话回WC()->.

我已在中尝试了上述代码functions.php. 我还遇到了子div文件不凌驾于父div文件之上的问题,因此我将此代码放在父div文件中。这是另一个问题,我只需要给产品打个简单的电话就可以了。

<script>
    function getAJAX() {
        jQuery.ajax({
            type: "post",
            url: "/wp-admin/admin-ajax.php",
            data: "action=get_Title&id=1651",
            success: function (data) {
                console.log(data);
            }
        });
    } // End function for getAJAX.
    var button = document.getElementById("ajax_button");
    button.addEventListener("click", getAJAX);

</script>
这是来自模板、内容单一产品的AJAX调用。php。我认为这里没有任何问题。我正在获取返回的数据。

add_action("wp_ajax_get_Title", "get_Title");
add_action("wp_ajax_nopriv_get_Title", "get_Title");

function get_Title() {
    $id = $_REQUEST[\'id\'];
    $_pf = new WC_Product_Factory();
    $product = $_pf->get_product($id);

    echo $product;

    die();
}
以上是我一直在使用的一些代码。我最后一次尝试,但仍然得到bool(false).

是的,这是一个有效的产品ID。在我开始为需要从产品中提取的所有数据片段编码之前,我只是测试连接到一个产品并提取标题或其他内容。

这是一个多站点平台,AJAX调用和对woocommerce产品的调用正在我所在站点的其他页面上工作,但不会对我所在的项目产生任何影响。

我是woocommerce和WP的新手,因此非常感谢您的帮助。

1 个回复
SO网友:Stephan Samuel

我没有额外的WC实例可供尝试,但我确实看到了一个可能的问题。

$_REQUEST[\'id\'] 是字符串(始终)。WC_Product_Factory->get_product() PHP不是,WP肯定不是,总是聪明地进行透明重铸。

尝试以下操作,看看是否有帮助:

function get_Title() {
    $id = $_REQUEST[\'id\'];
    if (is_string($id) && is_numeric($id))
        $id = intval($id);
    $_pf = new WC_Product_Factory();
    $product = $_pf->get_product($id);

    echo $product;

    die();
}
无法测试我无法判断这是否真的发生了什么,但这是一个快速的变化,所以值得尝试。

相关推荐