';
if( !isset($products_response['products']) || count($products_response['products']) == 0 ){
$html[] = '
You need to import some Amazon products first!
';
}
else{
/*$html[] = '
';
$html[] = '
' . ( $products_response['stats']['nb_products'] ) . '
Total Number of products
';
$html[] = '
' . ( $products_response['stats']['total_hits'] ) . '
Total products views
';
$html[] = '
' . ( $products_response['stats']['total_addtocart'] ) . '
Total added to cart
';
$html[] = '
' . ( $products_response['stats']['total_redirect_to_amazon'] ) . '
Total redirected to Amazon
';
$html[] = '
';*/
$html[] = '
';
}
$html[] = '
';
$return['products_performances'] = array(
'status' => 'valid',
'html' => implode("\n", $html),
'data' => $products_response['stats']
);
}
die(json_encode($return));
}
// Old version
private function _getPublishProductsWidthStatus( $limit=0 )
{
$ret = array();
$key = '_amzASIN';
$_key = $key;
if ( $_key == '_amzASIN' ) $key = '_amzaff_prodid';
$args = array();
$ret['products'] = array();
$ret['stats']['nb_products'] = 0;
$ret['stats']['total_hits'] = 0;
$ret['stats']['total_redirect_to_amazon'] = 0;
$ret['stats']['total_addtocart'] = 0;
$args['post_type'] = array('product'); //, 'product_variation'
$args['meta_key'] = $key;
$args['meta_value'] = '';
$args['meta_compare'] = '!=';
// show all posts
$args['fields'] = 'ids';
$args['posts_per_page'] = '-1';
$loop = new WP_Query( $args );
$cc = 0;
if( count($loop->posts) > 0 ){
$stats_query = "SELECT post_id, meta_key, meta_value FROM " . ( $this->the_plugin->db->prefix ) . "postmeta WHERE 1=1 AND post_id IN (" . ( implode(",", $loop->posts) ) . ")";
$stats_query .= " AND ( meta_key='_amzaff_redirect_to_amazon' ";
$stats_query .= " OR meta_key='_amzaff_addtocart' ";
$stats_query .= " OR meta_key='_amzaff_hits' )";
$stats_results = $this->the_plugin->db->get_results( $stats_query, ARRAY_A );
$products_status = array();
// reodering here
if( count($stats_results) > 0 ){
foreach ($stats_results as $row ) {
$products_status[$row['post_id']][$row['meta_key']] = $row['meta_value'];
}
}
foreach ($loop->posts as $post) {
$redirect_to_amazon = ( isset($products_status[$post]['_amzaff_redirect_to_amazon']) ? (int) $products_status[$post]['_amzaff_redirect_to_amazon'] : 0 );
$addtocart = ( isset($products_status[$post]['_amzaff_addtocart']) ? (int) $products_status[$post]['_amzaff_addtocart'] : 0 );
$hits = ( isset($products_status[$post]['_amzaff_hits']) ? (int) $products_status[$post]['_amzaff_hits'] : 0 );
$score = ($redirect_to_amazon * 3) + ($addtocart * 2) + ($hits * 1);
$ret['products'][$post] = array(
'id' => $post,
'score' => $score,
'redirect_to_amazon' => $redirect_to_amazon,
'addtocart' => $addtocart,
'hits' => $hits
);
$ret['stats']['nb_products'] = $ret['stats']['nb_products'] + 1;
$ret['stats']['total_hits'] = $ret['stats']['total_hits'] + $hits;
$ret['stats']['total_redirect_to_amazon'] = $ret['stats']['total_redirect_to_amazon'] + $redirect_to_amazon;
$ret['stats']['total_addtocart'] = $ret['stats']['total_addtocart'] + $addtocart;
}
}
if( count($ret['products']) > 0 ){
// reorder the products as a top
$ret['products'] = $this->sort_hight_to_low( $ret['products'], 'score' );
// limit the return, if request
if( (int) $limit != 0 ){
$ret['products'] = array_slice($ret['products'], 0, $limit);
}
}
return $ret;
}
// New version /update on 2015.05.05
private function _getPublishProductsWidthStatus_old2( $limit=0 )
{
global $wpdb;
$ret = array();
$ret['products'] = array();
$ret['stats']['nb_products'] = 0;
$ret['stats']['total_hits'] = 0;
$ret['stats']['total_redirect_to_amazon'] = 0;
$ret['stats']['total_addtocart'] = 0;
$key = '_amzASIN';
$_key = $key;
if ( $_key == '_amzASIN' ) $key = '_amzaff_prodid';
$prod_key = array( '_amzASIN', '_amzaff_prodid' );
$prod_key_ = "'_amzASIN', '_amzaff_prodid'";
$filterbyprov_clause = "( ( pm.meta_key = '_amzaff_prodid' AND pm.meta_value not regexp '^amz-' ) OR ( pm.meta_key = '_amzASIN' AND ! isnull(pm.meta_value) ) )";
// OLD BUGGED QUERY
// get products (simple or just parents without variations)
//$sql = "SELECT p.ID, p.post_title, p.post_parent, p.post_date, if( pm.meta_value REGEXP '^(amz|eby)-', SUBSTRING( pm.meta_value, 1, 3 ), 'amz' ) AS provider FROM $wpdb->posts as p LEFT JOIN $wpdb->postmeta as pm ON p.ID = pm.post_id LEFT JOIN $wpdb->postmeta as pm2 ON p.ID = pm2.post_id WHERE 1=1 AND ( ( pm.meta_key = '$key' and ( !isnull(pm.meta_value) AND pm.meta_value != '' ) ) OR ( pm.meta_key = '$_key' and ( !isnull(pm.meta_value) AND pm.meta_value != '' ) ) ) AND p.post_status = 'publish' AND p.post_parent = 0 AND p.post_type = 'product' ORDER BY p.ID ASC;";
// [FIXED] query - on 2019-jun-21
$sql = "SELECT p.ID, p.post_title, p.post_parent, p.post_date, if( pm.meta_value REGEXP '^(amz|eby)-', SUBSTRING( pm.meta_value, 1, 3 ), 'amz' ) AS provider FROM $wpdb->posts as p LEFT JOIN $wpdb->postmeta as pm ON p.ID = pm.post_id AND pm.meta_key in ($prod_key_) WHERE 1=1 AND p.post_status = 'publish' AND p.post_parent = 0 AND p.post_type = 'product' AND $filterbyprov_clause ORDER BY p.ID ASC;";
//var_dump('