我正在开发 woocommerce 集成的 wordpress 安装。
我创建了一个独立的“SearchByNumber.php”文件并将其放入路径:/wp-content/plugins/ajax-test
通常它不是一个真正的插件(我不熟悉编写插件)。它正在卷曲 Web 服务并在 xml 中获取结果。
我想要做的是从这个 xml 循环 SKU 并从 woocommerce 中获取它们的 ID、价格、股票等。
我尝试了很多,但每次都遇到不同的错误:找不到类、找不到方法、空对象等。
global $product;
// a lot codes curling, looping, etc...
$product_id = $product->get_product_id_by_sku($sku_from_xml);
$product = wc_get_product($product_id);
$sku = $product->get_sku();
// or
$price = $product->get_price();
我试图通过 SKU 找到产品的 ID,然后从产品中获取我想要的任何东西。
PS:我$product->get_sku()
$product->get_attribute('Brand')
在产品页面的 php 片段中使用这些。他们在那里工作得很好。
如何挂钩,过滤,类?我究竟做错了什么?
我将不胜感激您的任何帮助。
非常感谢,
穆拉特
除非加载 Wordpress,否则无法访问任何函数或类。
因此,如果要从独立脚本加载 Wordpress,则需要执行以下操作:
<?php
require '../../../wp-load.php'; //Load WordPress
$product_id = wc_get_product_id_by_sku( 'test' ); //get the product id
if ( $product_id ) {
$product = wc_get_product( $product_id ); //get the product
$price = $product->get_price(); //get the price
echo $price;
}
但我强烈建议将您的脚本作为插件加载以获得更好的安全性,为了做到这一点,首先只需重命名您的文件以遵循 Wordpress 标准ajax-test.php
,然后将以下代码示例添加到您的脚本中
<?php
/*
Plugin Name: Ajax Test
*/
defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); //Security Check block direct access to your plugin PHP files
add_action( 'init', 'function_name' );
function function_name() {
$product_id = wc_get_product_id_by_sku( 'test' ); //get the product id
if ( $product_id ) {
$product = wc_get_product( $product_id ); //get the product
$price = $product->get_price(); //get the price
echo $price;
}
}
然后转到您的 Wordpress 后端并激活插件。
两种方式现在您都可以访问所有 WordPress 和 Woocommerce 挂钩
您可以通过以下链接查看 WordPress 插件参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句