<?php
//config
$mysql=array(
'host'=>'localhost',
'user'=>'db_user',
'password'=>'db_password',
'database'=>'db_name',
);
mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die ('error mysql_connect');
mysql_select_db($mysql['database']) or die ('error mysql_select_db');
mysql_query("set names 'utf8'");
//database functions
function get_from_base($what,$from,$where='(1)',$order='id'){
if(trim($what)!=''&&trim($from)!=''&&trim($where)!=''&&trim($order)!=''){
$arr=array();
$query="select ".$what." from ".$from." where ".$where." order by ".$order;
$result=mysql_query($query);
echo mysql_error();
if(mysql_num_rows($result)>0){
while($tmp=mysql_fetch_assoc($result)){
$arr[]=$tmp;
}
return $arr;
}
}else{
return false;
}
}
function get_one_from_base($what,$from,$where='(1)',$order='id'){
if(trim($what)!=''&&trim($from)!=''&&trim($where)!=''&&trim($order)!=''){
$arr=array();
$query="select ".$what." from ".$from." where ".$where." order by ".$order;
$result=mysql_query($query);
echo mysql_error();
if($result){
if(mysql_num_rows($result)>0){
return mysql_fetch_assoc($result);
}
}
}
return false;
}
//work functions
function make_tree($parent,$parent_chpu=''){
$tree=array();
$cats=get_from_base('*','wp_term_taxonomy',"`taxonomy`='product_cat' AND `parent`='".$parent."'",'term_taxonomy_id');
if(count($cats)>0){
$cat_chpu=$parent_chpu;
for($i=0;$i<=count($cats)-1;$i++){
//$tree[$i]=$cats[$i];
$tree[$i]=array(
'wid'=>$cats[$i]['term_id'],
'description'=>$cats[$i]['description'],
);
$term=get_one_from_base('*','wp_terms',"`term_id`='".$cats[$i]['term_id']."'",'term_id');
if($term['term_id']){
//$tree[$i]['term']=$term;
$tree[$i]['name']=$term['name'];
$tree[$i]['chpu']=urldecode($term['slug']);
$cat_chpu=$parent_chpu.'/'.urldecode($term['slug']);
}
$tree[$i]['link']='/product-category'.$cat_chpu;
$tree[$i]['childs']=make_tree($cats[$i]['term_taxonomy_id'],$cat_chpu);
$tree[$i]['items']=get_products($cats[$i]['term_taxonomy_id'],$cat_chpu);
}
}
return $tree;
}
function get_products($parent,$parent_chpu=''){
$products=array();
$relationships=get_from_base('*','wp_term_relationships',"`term_taxonomy_id`='".$parent."'",'object_id');
if(count($relationships)>0){
foreach($relationships as $i=>$object){
$product=get_one_from_base('*','wp_posts','`post_type`="product" and `ID`='.$object['object_id'],'ID');
$product['meta']=get_from_base('*','wp_postmeta','`post_id`="'.$object['object_id'].'"','meta_id');
//$products[]=$product;
$products[$i]=array(
'wid'=>$product['ID'],
'name'=>$product['post_title'],
'announce'=>prepare_html($product['post_excerpt']),
'content'=>prepare_html($product['post_content']),
'chpu'=>urldecode($product['post_name']),
'link'=>'/shop'.$parent_chpu.'/'.urldecode($product['post_name']),
//'meta'=>$product['meta'],
);
if(count($product['meta'])>0){
foreach($product['meta'] as $meta){
if($meta['meta_value']){
switch($meta['meta_key']){
case '_price':
$products[$i]['price']=$meta['meta_value'];
break;
case '_thumbnail_id':
$photo=get_one_from_base('*','wp_posts','`ID`='.$meta['meta_value'],'ID');
if($photo['ID']){
$photo_url=parse_url($photo['guid']);
$products[$i]['photo']=$photo_url['path'];
}
break;
case '_sku':
$products[$i]['part']=$meta['meta_value'];
break;
}
}
}
}
}
}
return $products;
}
function prepare_html($html){
$html=str_replace("\r\n\r\n","</p><p>",$html);
$html=str_replace("\r\n","<br/>",$html);
return "<p>".$html."</p>";
}
//work
$tree=make_tree(0);
echo '<pre>';print_r($tree);echo '</pre >';
?>