PDA

View Full Version : سوال php : کپی این فانکشن ( ایجاد دو فانکشن از یکی )



hoka1731
جمعه 15 بهمن 1395, 08:01 صبح
سلام خدمت همه ی عزیزان


من یک فانکشنی دارم برای لایک وردپرس هست . بدون مشکل کار میکنه و هیچ مشکلی نیست ولی هرچقدر سعی کردم نتونستم همین فانکشن و کد جاوارو کپی کنم که بتونم هم یک دکمه ی لایک داشته باشم هم یک دیسلایک
کسی از دوستان میتونه راه نمایی بکنه ؟

فانکشن




function likeThis($post_id,$action = 'get') {

if(!is_numeric($post_id)) {
error_log("خطا : مقدار عددي براي post_id ارسال نشده است");
return;
}

switch($action) {

case 'get':
$data = get_post_meta($post_id, '_likes');

if(!is_numeric($data[0])) {
$data[0] = 0;
add_post_meta($post_id, '_likes', '0', true);
}

return $data[0];
break;


case 'update':
if(isset($_COOKIE["like_" . $post_id])) {
return;
}

$currentValue = get_post_meta($post_id, '_likes');

if(!is_numeric($currentValue[0])) {
$currentValue[0] = 0;
add_post_meta($post_id, '_likes', '1', true);
}

$currentValue[0]++;
update_post_meta($post_id, '_likes', $currentValue[0]);

setcookie("like_" . $post_id, $post_id,time()+(60*60*24*365));
break;

}

}

function mw_Likes($post_id) {
$likes = likeThis($post_id);

$who = ' بار پسنديده شده است ';

if($likes == 1) {
$who = ' بار پسنديده شده است ';
}

if(isset($_COOKIE["like_" . $post_id])) {
print '<a href="#" class="likeThis done" id="like-'.$post_id.'">'.$likes.$who.'</a>';
return;
}

print '<a href="#" class="likeThis" id="like-'.$post_id.'">'.$likes.$who.'</a>';
}


function setUpPostLikes($post_id) {
if(!is_numeric($post_id)) {
error_log("خطا : مقدار عددي براي post_id ارسال نشده است");
return;
}


add_post_meta($post_id, '_likes', '0', true);

}


function checkHeaders() {
if(isset($_POST["likepost"])) {
likeThis($_POST["likepost"],'update');
}

}


function jsIncludes() {
wp_enqueue_script('jquery');

wp_register_script('Mw-likesScript',
get_template_directory_uri(). '/js/Mw-likesScript.js' );
wp_enqueue_script('Mw-likesScript',array('jquery'));

}

add_action ('publish_post', 'setUpPostLikes');
add_action ('init', 'checkHeaders');
add_action ('get_header', 'jsIncludes');








جاوااسکریپت



var $j=jQuery.noConflict();$j(document).ready(function (){function reloadLikes(who){var text=$j("#"+who).text();var patt=/(\d)+/;var num=patt.exec(text);num[0]++;text=text.replace(patt,num[0]);if(num[0]==1){text=text.replace('people like','person likes');}else if(num[0]==2){text=text.replace('person likes','people like');}
$j("#"+who).text(text);}
$j(".likeThis").click(function(){var classes=$j(this).attr("class");classes=classes.split(" ");if(classes[1]=="done"){return false;}
var classes=$j(this).addClass("done");var id=$j(this).attr("id");id=id.split("like-");$j.ajax({type:"POST",url:"index.php",data:"likepost="+id[1],success:reloadLikes("like-"+id[1])});return false;});});