【发布时间】:2021-11-22 04:44:09
【问题描述】:
我想用 woocommerce 制作 wordpress 插件。我的想法是制作诸如众筹之类的东西(显示赚到的钱、目标钱等)。我制作了一个获取产品 ID 的脚本,但是当我尝试使用 wc_get_product($id) 时出现错误“调用未定义的函数 wc_get_product()”。我尝试包含 woocommerce.php 文件,但后来我得到“wc_get_product 不应该在 woocommerce_init、woocommerce_after_register_taxonomy 之前被调用 并且 woocommerce_after_register_post_type 操作已完成。”
主文件:
<?php
/**
* Plugin Name: xxx
* Plugin URI: xxx
* Description: xxx
* Version: xxx
* Author: xxx.com
* Author URI: xxx
*/
defined( 'ABSPATH' ) or die( 'Plugin file cannot be accessed directly.' );
/* prevents submit button from sendind the same data twice (off for now)
function preventResubmit(){
?>
<script>
if ( window.history.replaceState ) {
window.history.replaceState( null, null, window.location.href );
}
</script>
<?php
}
*/
require(dirname(__FILE__).'/shortcodes.php');
add_action("admin_menu","cfdg_add_admin_menu");
function cfdg_add_admin_menu(){
add_menu_page("Crowdfunding","Crowdfunding", "manage_options", "cfdg-admin", "cfdg_add_page", "dashicons-money");
}
function cfdg_add_page(){
require (dirname(__FILE__).'/adminmenu.php');
}
?>
简码.php
<?php
$earnedMoney = cfdg_getEarnedMoney();
$targetMoney = 30000;
function cfdg_getEarnedMoney() {
global $wpdb;
$cdfg_money_to_return = 0;
$sql = 'SELECT ml.product_id FROM wp_wc_order_product_lookup AS pl
JOIN wp_wc_product_meta_lookup AS ml ON pl.product_id = ml.product_id
JOIN wp_posts AS wp ON wp.ID = pl.order_id WHERE LOCATE("crowdfunding",sku) AND (wp.post_status = "wc-processing" OR wp.post_status = "wc-completed");';
$results = $wpdb->get_results($sql);
if(!$results) return 0;
foreach($results as $res){
$cdfg_produkcik = wc_get_product($res); /* <--- HERE I GET THE ERROR */
$cdfg_product_price= $cdfg_produkcik->get_price();
$cdfg_money_to_return += $cdfg_product_price;
}
return $cdfg_money_to_return ;
}
//PROGRESS BAR
add_shortcode('cfdg_progress_bar', 'cfdg_func_progress_bar');
function cfdg_func_progress_bar(){
global $earnedMoney; global $targetMoney;
echo "Earned: ".$earnedMoney." from: ".$targetMoney." required";
}
//END OF PROGRESS BAR
?>
【问题讨论】:
标签: php mysql wordpress woocommerce plugins