关于赞的数量,数据库中UM插件使用的是um_post_likes,而WordPress使用的是like,所以为了统一两者,需要修改一下UM的配置。
主要是修改两个文件,路径分别是:
func/functions.php
template/action-meta.php
打开这两个文件,然后将um_post_likes替换为like即可。
数据库对应字段:wp_postmeta
这里备份一下源文件:
<?php
/* Add JS and CSS */
function um_add_scripts() {
$jq = UM_URI.'static/jquery.min.js';
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', $jq );
wp_enqueue_script( 'jquery' );
$um_js = UM_URI.'static/um.js';
wp_enqueue_script( 'um', $um_js, 'jquery', '', true );
if(is_author()){
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_enqueue_style('thickbox');
}
$um_css = UM_URI.'static/um.css';
wp_enqueue_style( 'um', $um_css );
if(um_get_setting('font_awesome')){
$font_awesome = UM_URI.'static/font-awesome/font-awesome.css';
wp_enqueue_style( 'fa', $font_awesome );
}
?>
<script type="text/javascript">
var um = <?php echo um_script_parameter(); ?>;
</script>
<?php
if ( get_post_type()=='store' ){
?>
<script type="text/javascript">var bds_config = {'snsKey':{'tsina':"<?php echo um_get_setting('um_open_weibo_key','2884429244'); ?>"}};</script>
<script type="text/javascript" id="bdshell_js" src = "http://bdimg.share.baidu.com/static/api/js/share.js"></script>
<?php
}
}
add_action('wp_enqueue_scripts', 'um_add_scripts');
/* Remove open sans */
function um_remove_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');
}
add_action( 'init', 'um_remove_open_sans' );
/* Add avatar upload folder */
function um_add_avatar_folder() {
$upload = wp_upload_dir();
$upload_dir = $upload['basedir'];
$upload_dir = $upload_dir . '/avatars';
if (! is_dir($upload_dir)) {
mkdir( $upload_dir, 0755 );
}
}
add_action('init','um_add_avatar_folder');
/* Rename uploaded image name include Chinese */
function um_custom_upload_name($file){
if(preg_match('/[一-龥]/u',$file['name'])):
$ext=ltrim(strrchr($file['name'],'.'),'.');
$file['name']=preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])).'_'.date('Y-m-d_H-i-s').'.'.$ext;
endif;
return $file;
}
add_filter('wp_handle_upload_prefilter','um_custom_upload_name',5,1);
/* Register shop menu */
function um_register_menu(){
register_nav_menus( array(
'shopcatbar' => '商城分类导航'
) );
}
add_action('init','um_register_menu');
/* Get current page url */
function um_get_current_page_url(){
global $wp;
return get_option( 'permalink_structure' ) == '' ? add_query_arg( $wp->query_string, '', home_url( $wp->request ) ) : home_url( add_query_arg( array(), $wp->request ) );
}
function um_get_current_page_url2(){
$protocol = strtolower($_SERVER['REQUEST_SCHEME']);
$ssl = $protocol=='https'?true:false;
$port = $_SERVER['SERVER_PORT'];
$port = ((!$ssl && $port=='80') || ($ssl && $port=='443')) ? '' : ':'.$port;
$host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
return $protocol . '://' . $host . $port . $_SERVER['REQUEST_URI'];
}
/* JS parameters */
function um_script_parameter(){
$object = array();
$object['ajax_url'] = admin_url('admin-ajax.php');
$object['admin_url'] = admin_url();
$object['wp_url'] = get_bloginfo('url');
$object['um_url'] = UM_URI;
$object['uid'] = (int)get_current_user_id();
$object['is_admin'] = current_user_can('edit_users')?1:0;
$object['redirecturl'] = um_get_current_page_url();
$object['loadingmessage'] = '正在请求中,请稍等...';
$object['paged'] = get_query_var('paged')?(int)get_query_var('paged'):1;
$object['cpage'] = get_query_var('cpage')?(int)get_query_var('cpage'):1;
if(is_single()){
global $post;
$object['pid'] = $post->ID;
}
$object['timthumb'] = UM_URI.'func/timthumb.php?src=';
$object_json = json_encode($object);
return $object_json;
}
/* AJAX login */
function um_ajax_login(){
$result = array('loggedin'=>0,'message'=>'');
if(isset($_POST['security']) /*&& wp_verify_nonce( $_POST['security'], 'security_nonce' )*/ ){
$creds = array();
$creds['user_login'] = $_POST['username'];
$creds['user_password'] = $_POST['password'];
$creds['remember'] = ( isset( $_POST['remember'] ) ) ? $_POST['remember'] : false;
$login = wp_signon($creds, false);
if ( ! is_wp_error( $login ) ){
$result['loggedin'] = 1;
$result['message'] = '登录成功!即将为你刷新';
}else{
$result['message'] = ( $login->errors ) ? strip_tags( $login->get_error_message() ) : '<strong>ERROR</strong>: ' . esc_html__( '请输入正确用户名和密码以登录', 'um' );
}
}else{
$result['message'] = __('安全认证失败,请重试!','um');
}
header( 'content-type: application/json; charset=utf-8' );
echo json_encode( $result );
exit;
}
add_action( 'wp_ajax_ajax_login', 'um_ajax_login' );
add_action( 'wp_ajax_nopriv_ajax_login', 'um_ajax_login' );
/* AJAX register */
function um_ajax_register(){
$result = array();
if(isset($_POST['security']) /*&& wp_verify_nonce( $_POST['security'], 'user_security_nonce' )*/ ){
$user_login = sanitize_user($_POST['username']);
$user_pass = $_POST['password'];
$user_email = apply_filters( 'user_registration_email', $_POST['email'] );
$captcha = strtolower(trim($_POST['um_captcha']));
session_start();
$session_captcha = strtolower($_SESSION['um_captcha']);
$errors = new WP_Error();
if( ! validate_username( $user_login ) ){
$errors->add( 'invalid_username', __( '请输入一个有效用户名','um' ) );
}elseif(username_exists( $user_login )){
$errors->add( 'username_exists', __( '此用户名已被注册','um' ) );
}elseif(email_exists( $user_email )){
$errors->add( 'email_exists', __( '此邮箱已被注册','um' ) );
}
do_action( 'register_post', $user_login, $user_email, $errors );
$errors = apply_filters( 'registration_errors', $errors, $user_login, $user_email );
if ( $errors->get_error_code() ){
$result['success'] = 0;
$result['message'] = $errors->get_error_message();
} else {
$user_id = wp_create_user( $user_login, $user_pass, $user_email );
if ( ! $user_id ) {
$errors->add( 'registerfail', sprintf( __( '无法注册,请联系管理员','um' ), get_option( 'admin_email' ) ) );
$result['success'] = 0;
$result['message'] = $errors->get_error_message();
} else{
update_user_option( $user_id, 'default_password_nag', true, true );
wp_new_user_notification( $user_id, $user_pass );
$result['success'] = 1;
$result['message'] = __( '注册成功,即将为你自动登录','um' );
//auto login in
wp_set_current_user($user_id);
wp_set_auth_cookie($user_id);
$result['loggedin'] = 1;
}
}
}else{
$result['message'] = __('安全认证失败,请重试!','um');
}
header( 'content-type: application/json; charset=utf-8' );
echo json_encode( $result );
exit;
}
add_action( 'wp_ajax_ajax_register', 'um_ajax_register' );
add_action( 'wp_ajax_nopriv_ajax_register', 'um_ajax_register' );
/* Add captcha in login page
/* -------------------------- */
function um_add_register_captcha(){
$captcha = UM_URI.'/template/captcha.php';
?>
<p style="overflow:hidden;">
<label for="um_captcha">验证码<br>
<input type="text" name="um_captcha" id="um_captcha" aria-describedby="" class="input" value="" size="20" style="float:left;margin-right:10px;width:200px;">
<img src="<?php echo $captcha; ?>" class="captcha_img inline" title="点击刷新验证码" onclick="this.src='<?php echo $captcha; ?>';" style="float:right;margin-top: 5px;"></label>
</p>
<?php
}
add_action('register_form','um_add_register_captcha');
function um_add_register_captcha_verify($sanitized_user_login,$user_email,$errors){
if(!isset($_POST['um_captcha'])||empty($_POST['um_captcha'])){
return $errors->add( 'empty_captcha', __( '请填写验证码','um' ) );
}else{
$captcha = strtolower(trim($_POST['um_captcha']));
session_start();
$session_captcha = strtolower($_SESSION['um_captcha']);
if($captcha!=$session_captcha){
return $errors->add( 'wrong_captcha', __( '验证码错误','um' ) );
}
}
}
add_action('register_post','um_add_register_captcha_verify',10,3);
/* Load author template */
function um_load_author_template($template_path){
if(!um_get_setting('open_ucenter',1))return $template_path;
if(is_author()){
$template_path = UM_DIR.'/template/author.php';
}
return $template_path;
}
add_filter( 'template_include', 'um_load_author_template', 1 );
/* Catch first image of post */
function um_catch_first_image(){
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = isset($matches [1] [0]) ? $matches [1] [0] : '';
if(empty($first_img)){
$random = mt_rand(1, 20);
$first_img = UM_URI;
$first_img .= '/static/img/rand/'.$random.'.jpg';
}
return $first_img;
}
/* Timthumb */
function um_timthumb($src,$width=375,$height=250,$q=100){
return UM_URI.'/func/timthumb.php?src='.$src.'&q='.$q.'&w='.$width.'&h='.$height.'&zc=1';
}
/* Ucenter tab */
function um_get_user_url( $type='', $user_id=0 ){
$user_id = intval($user_id);
if( $user_id==0 ){
$user_id = get_current_user_id();
}
$url = add_query_arg( 'tab', $type, get_author_posts_url($user_id) );
return $url;
}
/* No robots for author page */
function um_author_tab_no_robots(){
if( is_author() && isset($_GET['tab']) ) wp_no_robots();
}
add_action('wp_head', 'um_author_tab_no_robots');
/* Profile page fronted */
function um_profile_page( $url ) {
return is_admin() ? $url : um_get_user_url('profile');
}
add_filter( 'edit_profile_url', 'um_profile_page' );
/* Prohibit none admin user visit admin page */
function um_redirect_wp_admin(){
$url = um_get_current_page_url();
if( (is_admin()&&!stripos($url,'media-upload.php')) && is_user_logged_in() && !current_user_can('edit_users') && ( !defined('DOING_AJAX') || !DOING_AJAX ) ){
wp_redirect( um_get_user_url('profile') );
exit;
}
}
add_action( 'init', 'um_redirect_wp_admin' );
/* None admin users edit post fronted */
function um_edit_post_link($url, $post_id){
if( !current_user_can('edit_users') ){
$url = add_query_arg(array('action'=>'edit', 'id'=>$post_id), um_get_user_url('post'));
}
return $url;
}
add_filter('get_edit_post_link', 'um_edit_post_link', 10, 2);
/* Login page customize logo and dynamic background image */
function um_login_logo_bg(){
$custom_login_logo = um_get_setting('custom_login_logo');
$default_login_logo = UM_URI.'static/img/wordpress-logo.png';
$imgurl = '';
if(um_get_setting('bing_login_bg')){
$str=@file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){
$imgurl='http://cn.bing.com'.$matches[1];
}
echo '<link rel="stylesheet" href="' . UM_URI . 'static/login.css" type="text/css" media="all" />' . "\n";
}
if( !empty($custom_login_logo) ){
$css = sprintf('background-image:url(%1$s);-webkit-background-size:85px 85px;background-size:85px 85px;width:85px;height:85px;', $custom_login_logo);
}else{
$css = sprintf('background-image:url(%1$s);-webkit-background-size:85px 85px;background-size:85px 85px;width:85px;height:85px;', $default_login_logo);;
}
?>
<style type="text/css">
body.login div#login h1 a{
<?php echo $css;?>
}
<?php if($imgurl){ ?>
@media screen and (min-width: 960px){
body.login{
background: url( <?php echo $imgurl; ?> );
background-size: cover;
}
}
<?php } ?>
</style>
<?php }
add_action( 'login_enqueue_scripts', 'um_login_logo_bg' );
function um_login_logo_url() {
return home_url();
}
add_filter( 'login_headerurl', 'um_login_logo_url' );
function um_login_logo_url_title() {
return get_bloginfo('name');
}
add_filter( 'login_headertitle', 'um_login_logo_url_title' );
/* Display nickname on admin users managing page */
function um_display_name_column( $columns ) {
$columns['um_display_name'] = '显示名称';
unset($columns['name']);
return $columns;
}
add_filter( 'manage_users_columns', 'um_display_name_column' );
function um_display_name_column_callback( $value, $column_name, $user_id ) {
if( 'um_display_name' == $column_name ){
$user = get_user_by( 'id', $user_id );
$value = ( $user->display_name ) ? $user->display_name : '';
}
return $value;
}
add_action( 'manage_users_custom_column', 'um_display_name_column_callback', 10, 3 );
/* Lastest login info */
function um_update_latest_login( $login ) {
$user = get_user_by( 'login', $login );
$latest_login = get_user_meta( $user->ID, 'um_latest_login', true );
$latest_ip = get_user_meta( $user->ID, 'um_latest_ip', true );
update_user_meta( $user->ID, 'um_latest_login_before', $latest_login );
update_user_meta( $user->ID, 'um_latest_ip_before', $latest_ip );
update_user_meta( $user->ID, 'um_latest_login', current_time( 'mysql' ) );
update_user_meta( $user->ID, 'um_latest_ip', $_SERVER['REMOTE_ADDR'] );
}
add_action( 'wp_login', 'um_update_latest_login', 10, 1 );
function um_latest_login_column( $columns ) {
$columns['um_latest_login'] = '上次登录';
return $columns;
}
add_filter( 'manage_users_columns', 'um_latest_login_column' );
function um_latest_login_column_callback( $value, $column_name, $user_id ) {
if('um_latest_login' == $column_name){
$user = get_user_by( 'id', $user_id );
$value = ( $user->um_latest_login ) ? $user->um_latest_login : $value = __('没有记录','um');
}
return $value;
}
add_action( 'manage_users_custom_column', 'um_latest_login_column_callback', 10, 3 );
/* Get recent login users */
function um_get_recent_user($number=10){
$user_query = new WP_User_Query( array ( 'orderby' => 'meta_value', 'order' => 'DESC', 'meta_key' => 'um_latest_login', 'number' => $number ) );
if($user_query) return $user_query->results;
return;
}
/* Page nav */
function um_pagenavi( $before = '', $after = '', $p = 2 ) {
if ( is_singular() ) return;
global $wp_query, $paged;
$max_page = $wp_query->max_num_pages;
if ( $max_page == 1 )
return;
if ( empty( $paged ) )
$paged = 1;
echo '<div class="pages"><ul class="page-list">';
if($paged>3)
um_p_link( 1, '首页','<li>','首页' );
if ( $paged > 1)
um_p_link( $paged - 1, '上一页', '<li class="prev-page">' ,'<i class="fa fa-angle-left"></i>' );
for( $i = $paged - $p; $i <= $paged + $p; $i++ ) {
if ( $i > 0 && $i <= $max_page )
$i == $paged ? print '<li class="current"><a href="">'.$i.'</a></li>' : um_p_link( $i,'', '<li>',$i);
}
if ( $paged < $max_page ) {um_p_link( $paged + 1,'下一页', '<li class="next-page">' ,'<i class="fa fa-angle-right"></i>');um_p_link( $max_page, '尾页','<li>','尾页' );}
echo '</ul></div>';
}
function um_p_link( $i, $title = '', $linktext = '' , $prevnext='') {
if ( $title == '' ) $title = "第 {$i} 页";
echo "{$linktext}<a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$prevnext}</a></li>";
}
/* AJAX update nonce */
function um_create_nonce_callback(){
echo wp_create_nonce( 'check-nonce' );
die();
}
add_action( 'wp_ajax_um_create_nonce', 'um_create_nonce_callback' );
add_action( 'wp_ajax_nopriv_um_create_nonce', 'um_create_nonce_callback' );
/* Update product traffic */
function um_tracker_ajax_callback(){
if ( ! wp_verify_nonce( trim($_POST['wp_nonce']), 'check-nonce' ) ){
echo 'NonceIsInvalid';
die();
}
if( $_POST['pid']=='' ) return;
$pid = sanitize_text_field($_POST['pid']);
if(!empty($pid)){
$views = get_post_meta($pid,'um_post_views',true)?(int)get_post_meta($pid,'um_post_views',true):0;
$views++;
update_post_meta($pid,'um_post_views',$views);
}
echo $views;
//do_action( 'um_tracker_ajax_callback', $pid );
die();
}
add_action( 'wp_ajax_um_tracker_ajax', 'um_tracker_ajax_callback' );
add_action( 'wp_ajax_nopriv_um_tracker_ajax', 'um_tracker_ajax_callback' );
/* Author page paginate */
function um_paginate($wp_query=''){
if(empty($wp_query)) global $wp_query;
$pages = $wp_query->max_num_pages;
if ( $pages >= 2 ):
$big = 999999999;
$paginate = paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $pages,
'type' => 'array'
) );
echo '<div class="pagination">';
foreach ($paginate as $value) {
echo '<span class="pg-item">'.$value.'</span>';
}
echo '</div>';
endif;
}
function um_pager($current, $max){
$paged = intval($current);
$pages = intval($max);
if($pages<2) return '';
$pager = '<div class="pagination clx">';
$pager .= '<div class="btn-group">';
if($paged>1) $pager .= '<a class="btn btn-default" style="float:left;padding:6px 12px;" href="' . add_query_arg('page',$paged-1) . '">'.__('上一页','um').'</a>';
if($paged<$pages) $pager .= '<a class="btn btn-default" style="float:left;padding:6px 12px;" href="' . add_query_arg('page',$paged+1) . '">'.__('下一页','um').'</a>';
if ($pages>2 ){
$pager .= '<div class="btn-group pull-right"><select class="form-control pull-right" onchange="document.location.href=this.options[this.selectedIndex].value;">';
for( $i=1; $i<=$pages; $i++ ){
$class = $paged==$i ? 'selected="selected"' : '';
$pager .= sprintf('<option %s value="%s">%s</option>', $class, add_query_arg('page',$i), sprintf(__('第 %s 页','um'), $i));
}
$pager .= '</select></div>';
}
$pager .= '</div></div>';
return $pager;
}
/* Action : like article */
function um_like_article(){
$pid = $_POST['pid'];
$likes = get_post_meta($pid,'um_post_likes',true);
$likes++;
update_post_meta($pid,'um_post_likes',$likes);
$uid = get_current_user_id();
$return = 1;
if($uid){
$meta = get_user_meta($uid,'um_article_interaction',true);
$meta = json_decode($meta);
$now_date = date('Y-m-j');
$credit = um_get_setting('like_article_credit',5);
$times = um_get_setting('like_article_credit_times',5);
$get = 0;
if(!isset($meta->dated)||$now_date!=$meta->dated){
update_um_credit( $uid , $credit , 'add' , 'um_credit' , sprintf( __('参与文章互动,获得%s马杜币','um') , $credit ) );
$new_times = 1;
$new_meta = json_encode(array('dated'=>$now_date,'times'=>$new_times));
update_user_meta($uid,'um_article_interaction',$new_meta);
$get = 1;
}else if($meta->times<$times){
update_um_credit( $uid , $credit , 'add' , 'um_credit' , sprintf( __('参与文章互动,获得%s马杜币','um') , $credit ) );
$new_times = $meta->times;
$new_times++;
$new_meta = json_encode(array('dated'=>$now_date,'times'=>$new_times));
update_user_meta($uid,'um_article_interaction',$new_meta);
$get = 1;
}else{}
$return = json_encode(array('get'=>$get,'credit'=>$credit));
}
echo $return;
exit;
}
add_action( 'wp_ajax_nopriv_like', 'um_like_article' );
add_action( 'wp_ajax_like', 'um_like_article' );
/* Action : collect article */
function um_collect(){
$pid = $_POST['pid'];
$uid = $_POST['uid'];
$action = $_POST['act'];
if($action!='remove'){
$collect = get_user_meta($uid,'um_collect',true);
$plus=1;
if(!empty($collect)){
$collect_arr = explode(',', $collect);
if(in_array($pid, $collect_arr)){$plus=0;return;}
$collect .= ','.$pid;
update_user_meta($uid,'um_collect',$collect);
}else{
$collect = $pid;
update_user_meta($uid,'um_collect',$collect);
}
$collects = get_post_meta($pid,'um_post_collects',true);
$collects += $plus;
$plus!=0?update_post_meta($pid,'um_post_collects',$collects):'';
}else{
$plus = -1;
$collect = get_user_meta($uid,'um_collect',true);
$collect_arr = explode(',', $collect);
if(!in_array($pid, $collect_arr)){$plus=0;return;}
$collect = um_delete_string_specific_value(',',$collect,$pid);
update_user_meta($uid,'um_collect',$collect);
$collects = get_post_meta($pid,'um_post_collects',true);
$collects--;
update_post_meta($pid,'um_post_collects',$collects);
}
echo $plus;
exit;
}
//add_action( 'wp_ajax_nopriv_collect', 'um_collect' );
add_action( 'wp_ajax_collect', 'um_collect' );
/* Delete specified record of string */
function um_delete_string_specific_value($separator,$string,$value){
$arr = explode($separator,$string);
$key =array_search($value,$arr);
array_splice($arr,$key,1);
$str_new = implode($separator,$arr);
return $str_new;
}
/* Get avatar */
function um_get_avatar( $id , $size='40' , $type=''){
if($type==='qq'){
$O = array(
'ID'=>um_get_setting('um_open_qq_id'),
'KEY'=>um_get_setting('um_open_qq_key')
);
$U = array(
'ID'=>get_user_meta( $id, 'um_qq_openid', true ),
'TOKEN'=>get_user_meta( $id, 'um_qq_access_token', true )
);
if( $O['ID'] && $O['KEY'] && $U['ID'] && $U['TOKEN'] ){
$avatar_url = 'http://q.qlogo.cn/qqapp/'.$O['ID'].'/'.$U['ID'].'/100';
}
}else if($type==='weibo'){
$O = array(
'KEY'=>um_get_setting('um_open_weibo_key'),
'SECRET'=>um_get_setting('um_open_weibo_secret')
);
$U = array(
'ID'=>get_user_meta( $id, 'um_weibo_openid', true ),
'TOKEN'=>get_user_meta( $id, 'um_weibo_access_token', true )
);
if( $O['KEY'] && $O['SECRET'] && $U['ID'] && $U['TOKEN'] ){
$avatar_url = 'http://tp3.sinaimg.cn/'.$U['ID'].'/180/1.jpg';
}
}else if($type==='customize'){
$avatar_url = get_bloginfo('url').'/wp-content/uploads/avatars/'.get_user_meta($id,'um_customize_avatar',true);
}else{
return get_avatar( $id, $size );
}
return '<img src="'.$avatar_url.'" class="avatar" width="'.$size.'" height="'.$size.'" />';
}
function um_get_avatar_url( $id , $size='40' , $type=''){
if($type==='qq'){
$O = array(
'ID'=>pckr_option('um_open_qq_id'),
'KEY'=>pckr_option('um_open_qq_key')
);
$U = array(
'ID'=>get_user_meta( $id, 'um_qq_openid', true ),
'TOKEN'=>get_user_meta( $id, 'um_qq_access_token', true )
);
if( $O['ID'] && $O['KEY'] && $U['ID'] && $U['TOKEN'] ){
$avatar_url = 'http://q.qlogo.cn/qqapp/'.$O['ID'].'/'.$U['ID'].'/100';
}
}else if($type==='weibo'){
$O = array(
'KEY'=>pckr_option('um_open_weibo_key'),
'SECRET'=>pckr_option('um_open_weibo_secret')
);
$U = array(
'ID'=>get_user_meta( $id, 'um_weibo_openid', true ),
'TOKEN'=>get_user_meta( $id, 'um_weibo_access_token', true )
);
if( $O['KEY'] && $O['SECRET'] && $U['ID'] && $U['TOKEN'] ){
$avatar_url = 'http://tp3.sinaimg.cn/'.$U['ID'].'/180/1.jpg';
}
}else if($type==='customize'){
$avatar_url = get_bloginfo('url').'/wp-content/uploads/avatars/'.get_user_meta($id,'um_customize_avatar',true);
}
if ($avatar_url != "") { return $avatar_url; } else return get_avatar_url($id);
}
/* Avatar type */
function um_get_avatar_type($user_id){
$id = (int)$user_id;
if($id===0) return 'default';
$avatar = get_user_meta($id,'um_avatar',true);
$customize = get_user_meta($id,'um_customize_avatar',true);
if( $avatar=='qq' && um_is_open_qq($id) ) return 'qq';
if( $avatar=='weibo' && um_is_open_weibo($id) ) return 'weibo';
if( $customize && !empty($customize) ) return 'customize';
return 'default';
}
/* SSL avatar */
function um_get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)(&?.*)/','<img src="https://cdn.v2ex.com/gravatar/$1?s=$2&r=PG&d=monsterid" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
// $avatar = str_replace(array("secure.gravatar.com/avatar", "www.gravatar.com/avatar", "0.gravatar.com/avatar", "1.gravatar.com/avatar", "2.gravatar.com/avatar"), "cdn.v2ex.com/gravatar", $avatar);
// $avatar = str_replace(array("s=100"), "s=100", $avatar);
return $avatar;
}
add_filter( 'get_avatar', 'um_get_ssl_avatar');
/* Resize uploaded avatar */
function um_resize( $ori ){
if( preg_match('/^http:\/\/[a-zA-Z0-9]+/', $ori ) ){
return $ori;
}
$info = um_getImageInfo( AVATARS_PATH . $ori );
if( $info ){
//上传图片后切割的最大宽度和高度
$dst_width = 100;
$dst_height = 100;
$scrimg = AVATARS_PATH . $ori;
if( $info['type']=='jpg' || $info['type']=='jpeg' ){
$im = imagecreatefromjpeg( $scrimg );
}
if( $info['type']=='gif' ){
$im = imagecreatefromgif( $scrimg );
}
if( $info['type']=='png' ){
$im = imagecreatefrompng( $scrimg );
}
if( $info['type']=='bmp' ){
$im = imagecreatefromwbmp( $scrimg );
}
if( $info['width']<=$dst_width && $info['height']<=$dst_height ){
return;
} else {
if( $info['width'] > $info['height'] ){
$height = intval($info['height']);
$width = $height;
$x = ($info['width']-$width)/2;
$y = 0;
} else {
$width = intval($info['width']);
$height = $width;
$x = 0;
$y = ($info['height']-$height)/2;
}
}
$newimg = imagecreatetruecolor( $width, $height );
imagecopy($newimg,$im,0,0,$x,$y,$info['width'],$info['height']);
$scale = $dst_width/$width;
$target = imagecreatetruecolor($dst_width, $dst_height);
$final_w = intval($width*$scale);
$final_h = intval($height*$scale);
imagecopyresampled( $target, $newimg, 0, 0, 0, 0, $final_w, $final_h, $width, $height );
imagejpeg( $target, AVATARS_PATH . $ori );
imagedestroy( $im );
imagedestroy( $newimg );
imagedestroy( $target );
}
return;
}
function um_getImageInfo( $img ){
$imageInfo = getimagesize($img);
if( $imageInfo!== false) {
$imageType = strtolower(substr(image_type_to_extension($imageInfo[2]),1));
$info = array(
"width" =>$imageInfo[0],
"height" =>$imageInfo[1],
"type" =>$imageType,
"mime" =>$imageInfo['mime'],
);
return $info;
}else {
return false;
}
}
/* Get all categories id */
function get_cat_ids(){
global $wpdb;
$request = "SELECT $wpdb->terms.term_id FROM $wpdb->terms ";
$request .= " LEFT JOIN $wpdb->term_taxonomy ON $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id ";
$request .= " WHERE $wpdb->term_taxonomy.taxonomy = 'category' ";
$request .= " ORDER BY term_id asc";
$categorys = $wpdb->get_results($request,ARRAY_N);
$ids = array();
foreach ($categorys as $category){
$ids[] .= $category[0];
}
return $ids;
}
/* Add paycontent to post */
function um_post_source_price($postid){
$price = product_smallest_price($postid);
$currency = get_post_meta($postid,'pay_currency',true);
$content = '<div id="post-price">';
if($price[3]==0&&$price[4]==0){
$content .= '<li class="summary-price"><span class="dt">售价 :</span>';
if($currency==1) $content .= '<em>¥</em><strong>'.sprintf('%0.2f',$price[0]).'</strong><em>(元)</em>'; else $content .= '<em><i class="fa fa-gift"></i></em><strong>'.sprintf('%0.2f',$price[0]).'</strong><em>(马杜币)</em>';
$content .= '</li>';
}else{
$content .= '<li class="summary-price"><span class="dt">售价 :</span>';
if($currency==1) $content .= '<em>¥</em><strong><del>'.sprintf('%0.2f',$price[0]).'</del></strong><em>(元)</em>'; else $content .= '<em><i class="fa fa-gift"></i></em><strong><del>'.sprintf('%0.2f',$price[0]).'</del></strong><em>(马杜币)</em>';
if($price[4]!=0){
$content .= '<strong> '.sprintf('%0.2f',$price[2]).'</strong><span>(限时优惠)</span>';
}
$content .= '</li>';
if($price[3]!=0){
$content .= '<li class="summary-price"><span class="dt">会员价格 :</span>';
if(getUserMemberType()) {
if($currency==1) $content .= '<em>¥</em><strong>'.sprintf('%0.2f',$price[1]).'</strong><em>(元)</em>'; else $content .= '<em><i class="fa fa-gift"></i></em><strong>'.sprintf('%0.2f',$price[1]).'</strong><em>(马杜币)</em>';
}else if(is_user_logged_in()){
$content .= sprintf(__('非 <a href="%1$s" target="_blank" title="开通会员">会员</a> 不能享受该优惠','um'),um_get_user_url('membership'));
} else {
if($currency==1) $content .= '<em>¥</em><strong>'.sprintf('%0.2f',$price[6]).'</strong><em>(元)</em>'; else $content .= '<em><i class="fa fa-gift"></i></em><strong>'.sprintf('%0.2f',$price[6]).'</strong><em>(马杜币)</em>';$content .= '<a href="javascript:" class="user-login">登录</a> 查看实际享受优惠';
}
$content .= '</li>';
}
}
$content .= '</div>';
return $content;
}
function um_post_paycontent($content){
if(get_post_status(get_the_ID())!='publish'||!get_post_meta(get_the_ID(),'pay_switch',true))return $content;
$hidden_content = '';
if(is_single()&&get_post_type()=='post'){
$price = product_smallest_price(get_the_ID());
$dl_links = get_post_meta(get_the_ID(),'product_download_links',true);
$pay_content = get_post_meta(get_the_ID(),'product_pay_content',true);
if(!count(get_user_order_records(get_the_ID(),0,1))) $hidden_content .= um_post_source_price(get_the_ID());
if(!empty($dl_links)):
$hidden_content .= '<div id="pay-content"><li class="summary-content"><span class="dt" style="position:absolute;top:0;left:0;">资源信息 :</span>';
$arr_links = explode(PHP_EOL,$dl_links);
foreach($arr_links as $arr_link){
$arr_link = explode('|',$arr_link);
$arr_link[0] = isset($arr_link[0]) ? $arr_link[0]:'';
$arr_link[1] = isset($arr_link[1]) ? $arr_link[1]:'';
$arr_link[2] = isset($arr_link[2]) ? $arr_link[2]:'';
$hidden_content .= '<p style="margin:0 0 0 75px;">'.$arr_link[0].'</p><p style="margin:0 0 0 75px;">下载链接:';
if($price[5]==0||count(get_user_order_records(get_the_ID(),0,1))>0){$hidden_content .= '<a href="'.$arr_link[1].'" title="'.$arr_link[0].'" target="_blank">'.$arr_link[1].'</a>';}else{$hidden_content .= '*** 隐藏内容购买后可见 ***';}
$hidden_content .= ' 下载密码:';
if($price[5]==0||count(get_user_order_records(get_the_ID(),0,1))>0){$hidden_content .= $arr_link[2];}else{$hidden_content .= '*** 隐藏内容购买后可见 ***';}
$hidden_content .= '</p>';
}
$hidden_content .= '</li>';
endif;
if($price[5]==0||count(get_user_order_records(get_the_ID(),0,1))>0) $hidden_content .= '<p style="margin-left:75px;">'.$pay_content.'</p>';
if($price[5]!=0&&count(get_user_order_records(get_the_ID(),0,1))<=0){$amount=(int)get_post_meta(get_the_ID(),'product_amount',true);$btn=$amount>0?'<a class="inner-buy-btn" data-top="false"><i class="fa fa-shopping-cart"></i>立即购买</a>':'<a class="inner-soldout" href="javascript:"><i class="fa fa-shopping-cart"> </i>缺货不可购买</a>';$hidden_content .= '<div id="pay"><p>购买该资源后,相关内容将发送至您的邮箱!'.$btn.'</p></div>';}
$hidden_content .= '</div>';
$see_content = empty($hidden_content)?$content:$content.'<div class="label-title post"><span id="title"><i class="fa fa-paypal"></i> 付费资源</span>'.$hidden_content.'</div>';
}else{
$see_content = $content;
}
return $see_content;
}
add_filter('the_content','um_post_paycontent',98);
/* Add activity button to post */
function um_post_activity_button($content){
if(!is_single()) return $content;
$umlikes=get_post_meta(get_the_ID(),'um_post_likes',true);
$umcollects=get_post_meta(get_the_ID(),'um_post_collects',true);
if(empty($umlikes)):$umlikes=0; endif;if(empty($umcollects)):$umcollects=0; endif;
$c_name = 'um_post_like_'.get_the_ID();$cookie = isset($_COOKIE[$c_name])?$_COOKIE[$c_name]:'';
$content .= '<div class="activity-btn"><a class="like-btn';
if($cookie==1)$content .= ' love-yes';
$content .= '" pid="'.get_the_ID().'" href="javascript:;" title="赞一个"><i class="fa ';
if($cookie==1)$content .= 'fa-heart'; else $content .= 'fa-heart-o';
$content .= '"> </i>赞一个 (<span>'.$umlikes.'</span>)</a>';
$uid = get_current_user_id();
if(!empty($uid)&&$uid!=0){
$mycollects = get_user_meta($uid,'um_collect',true);
$mycollects = explode(',',$mycollects);
$match = 0;
foreach ($mycollects as $mycollect){
if ($mycollect == get_the_ID()):$match++;endif;
}
if ($match==0){
$content .= '<a class="collect-btn collect-no" pid="'.get_the_ID().'" href="javascript:;" uid="'.get_current_user_id().'" title="点击收藏"><i class="fa fa-star-o"> </i>收藏 (<span>'.$umcollects.'</span>)</a>';
}else{
$content .= '<a class="collect-btn collect-yes remove-collect" href="javascript:;" pid="'.get_the_ID().'" uid="'.get_current_user_id().'" title="你已收藏,点击取消"><i class="fa fa-star"> </i>收藏 (<span>'.$umcollects.'</span>)</a>';
}
}else{
$content .= '<a class="collect-btn collect-no" title="你必须注册并登录才能收藏"><i class="fa fa-star-o"> </i>收藏 (<span>'.$umcollects.'</span>)</a>';
}
$content .= '</div>';
return $content;
}
add_filter('the_content','um_post_activity_button',99);
/* Canonical_url */
function um_canonical_url(){
switch(TRUE){
case is_home() :
case is_front_page() :
$url = home_url('/');
break;
case is_single() :
$url = get_permalink();
break;
case is_tax() :
case is_tag() :
case is_category() :
$term = get_queried_object();
$url = get_term_link( $term, $term->taxonomy );
break;
case is_post_type_archive() :
$url = get_post_type_archive_link( get_post_type() );
break;
case is_author() :
$url = get_author_posts_url( get_query_var('author'), get_query_var('author_name') );
break;
case is_year() :
$url = get_year_link( get_query_var('year') );
break;
case is_month() :
$url = get_month_link( get_query_var('year'), get_query_var('monthnum') );
break;
case is_day() :
$url = get_day_link( get_query_var('year'), get_query_var('monthnum'), get_query_var('day') );
break;
default :
$url = um_get_current_page_url();
}
if ( get_query_var('paged') > 1 ) {
global $wp_rewrite;
if ( $wp_rewrite->using_permalinks() ) {
$url = user_trailingslashit( trailingslashit( $url ) . trailingslashit( $wp_rewrite->pagination_base ) . get_query_var('paged'), 'archive' );
} else {
$url = add_query_arg( 'paged', get_query_var('paged'), $url );
}
}
return $url;
}
/* Ucenter widget function */
function um_user_profile_widget(){
if(is_user_logged_in()):
$current_user = wp_get_current_user();
$li_output = '';
$li_output .= '<li style="line-height:36px;clear: both;">'.um_get_avatar( $current_user->ID , '36' , um_get_avatar_type($current_user->ID), false ) .
sprintf(__('登录者 <a href="%1$s">%2$s</a>','um'), get_edit_profile_url($current_user->ID), $current_user->display_name) .
'<a href="'.wp_logout_url(um_get_current_page_url()).'" title="'.esc_attr__('登出本帐号').'">' .
__('登出 »') .
'</a></li>';
if(!filter_var($current_user->user_email, FILTER_VALIDATE_EMAIL)){
$li_output .= '<li><a href="'.um_get_user_url('profile').'#pass">'.__('【重要】请添加正确的邮箱以保证账户安全','um').'</a></li>';
}
$shorcut_links[] = array(
'title' => __('个人主页','um'),
'url' => get_author_posts_url($current_user->ID)
);
if( current_user_can( 'manage_options' ) ) {
$shorcut_links[] = array(
'title' => __('管理后台','um'),
'url' => admin_url()
);
}
$can_post_cat = get_cat_ids();
if( count($can_post_cat) ) { if( wp_is_mobile() ){ $mee_url="http://www.diannews.cn/tg"; } else{ $mee_url=add_query_arg('action','new',um_get_user_url('post')); }
$shorcut_links[] = array(
'title' => __('文章投稿','um'),
'url' => $mee_url
);
}
$shorcut_html = '<li class="active">';
foreach( $shorcut_links as $shorcut ){
$shorcut_html .= '<a href="'.$shorcut['url'].'">'.$shorcut['title'].' »</a>';
}
$shorcut_html .= '</li>';
$credit = intval(get_user_meta( $current_user->ID, 'um_credit', true ));
$credit_void = intval(get_user_meta( $current_user->ID, 'um_credit_void', true ));
$unread_count = intval(get_um_message($current_user->ID, 'count', "( msg_type='unread' OR msg_type='unrepm' )"));
$collects = get_user_meta($current_user->ID,'um_collect',true)?get_user_meta($current_user->ID,'um_collect',true):0;
$collects_array = explode(',',$collects);
$collects_count = $collects!=0?count($collects_array):0;
$info_array = array(
array(
'title' => __('文章','um'),
'url' => um_get_user_url('post'),
'count' => count_user_posts($current_user->ID)
),
array(
'title' => __('评论','um'),
'url' => um_get_user_url('comment'),
'count' => get_comments( array('status' => '1', 'user_id'=>$current_user->ID, 'count' => true) )
),
array(
'title' => __('收藏','um'),
'url' => um_get_user_url('collect'),
'count' => intval($collects_count)
),
);
if($unread_count){
$info_array[] = array(
'title' => __('未读','um'),
'url' => um_get_user_url('message'),
'count' => $unread_count
);
}
$info_array[] = array(
'title' => __('马杜币','um'),
'url' => um_get_user_url('credit'),
'count' => ($credit)
);
$info_html = '<li>';
foreach( $info_array as $info ){
$info_html .= $info['title'].'<a href="'.$info['url'].'"> '.$info['count'].'</a>';
}
$info_html .= um_whether_signed($current_user->ID);
$info_html .= '</li>';
$friend_html = '
<li>
<div class="input-group">
<span class="input-group-addon">'.__('本页推广链接','um').'</span>
<input class="um_aff_url form-control" type="text" class="form-control" value="'.add_query_arg('aff',$current_user->ID,um_canonical_url()).'">
</div>
</li>
';
return $li_output.$shorcut_html.$info_html.$friend_html;;
else:
$html = '<li><span class="local-account"><a data-sign="0" class="btn btn-primary user-login"><i class="fa fa-wordpress"></i>'.__('本地帐号','um').'</a></span>';
if(um_get_setting('um_open_qq')) {
$html .= '<span class="other-sign"><a class="qqlogin btn" href="'.home_url('/?connect=qq&action=login&redirect='.urlencode(um_get_redirect_uri())).'"><i class="fa fa-qq"></i><span>'.__('QQ 登 录','um').'</span></a></span>';
}
if(um_get_setting('um_open_weibo')) {
$html .= '<span class="other-sign"><a class="weibologin btn" href="'.home_url('/?connect=weibo&action=login&redirect='.urlencode(um_get_redirect_uri())).'"><i class="fa fa-weibo"></i><span>'.__('微博登录','um').'</span></a></span>';
}
$html .= '</li>';
return $html;
endif;
}
/* Ucenter widget function */
function um_user_manage_widget(){
if(is_user_logged_in()):
$current_user = wp_get_current_user();
$li_output = '';
$li_output .= '<li style="line-height:36px;clear: both;">'.um_get_avatar( $current_user->ID , '36' , um_get_avatar_type($current_user->ID), false ) .
sprintf(__('登录者 <a href="%1$s">%2$s</a>','um'), get_edit_profile_url($current_user->ID), $current_user->display_name) .
'<a href="'.wp_logout_url(um_get_current_page_url()).'" title="'.esc_attr__('登出本帐号').'">' .
__('登出 »') .
'</a></li>';
if(!filter_var($current_user->user_email, FILTER_VALIDATE_EMAIL)){
$li_output .= '<li><a href="'.um_get_user_url('profile').'#pass">'.__('【重要】请添加正确的邮箱以保证账户安全','um').'</a></li>';
}
$shorcut_links[] = array(
'icon' => '<i class="fa fa-home"></i>',
'title' => __('个人主页','um'),
'url' => get_author_posts_url($current_user->ID)
);
$shorcut_links[] = array(
'icon' => '<i class="fa fa-edit"></i>',
'title' => __('编辑资料','um'),
'url' => um_get_user_url('profile')
);
if( current_user_can( 'manage_options' ) ) {
$shorcut_links[] = array(
'icon' => '<i class="fa fa-dashboard"></i>',
'title' => __('管理后台','um'),
'url' => admin_url()
);
}
$can_post_cat = get_cat_ids();
if( count($can_post_cat) ) { if( wp_is_mobile() ){ $mee_url="http://www.diannews.cn/tg"; } else{ $mee_url=add_query_arg('action','new',um_get_user_url('post')); }
$shorcut_links[] = array(
'icon' => '<i class="fa fa-send"></i>',
'title' => __('文章投稿','um'),
'url' => $mee_url
);
}
$shorcut_links[] = array(
'icon' => '<i class="fa fa-shopping-cart"></i>',
'title' => __('我的订单','um'),
'url' => um_get_user_url('orders'),
'prefix' => '<br>'
);
$shorcut_links[] = array(
'icon' => '<i class="fa fa-user-md"></i>',
'title' => __('会员信息','um'),
'url' => um_get_user_url('membership'),
'prefix' => ''
);
$shorcut_links[] = array(
'icon' => '<i class="fa fa-money"></i>',
'title' => __('我的推广','um'),
'url' => um_get_user_url('affiliate')
);
if( current_user_can( 'manage_options' ) ) {
$shorcut_links[] = array(
'icon' => '<i class="fa fa-tasks"></i>',
'title' => __('订单管理','um'),
'url' => um_get_user_url('siteorders')
);
}
if( current_user_can( 'manage_options' ) ) {
$shorcut_links[] = array(
'icon' => '<i class="fa fa-tags"></i>',
'title' => __('优惠码','um'),
'url' => um_get_user_url('coupon')
);
}
$shorcut_html = '<li class="active">';
foreach( $shorcut_links as $shorcut ){
$shorcut_html .= isset($shorcut['prefix'])?$shorcut['prefix']:'';
$shorcut_html .= '<a href="'.$shorcut['url'].'">'.$shorcut['icon'].$shorcut['title'].'</a>';
}
$shorcut_html .= '</li>';
$credit = intval(get_user_meta( $current_user->ID, 'um_credit', true ));
$credit_void = intval(get_user_meta( $current_user->ID, 'um_credit_void', true ));
$unread_count = intval(get_um_message($current_user->ID, 'count', "( msg_type='unread' OR msg_type='unrepm' )"));
$collects = get_user_meta($current_user->ID,'um_collect',true)?get_user_meta($current_user->ID,'um_collect',true):0;
$collects_array = explode(',',$collects);
$collects_count = $collects!=0?count($collects_array):0;
$info_array = array(
array(
'title' => __('文章','um'),
'url' => um_get_user_url('post'),
'count' => count_user_posts($current_user->ID)
),
array(
'title' => __('评论','um'),
'url' => um_get_user_url('comment'),
'count' => get_comments( array('status' => '1', 'user_id'=>$current_user->ID, 'count' => true) )
),
array(
'title' => __('收藏','um'),
'url' => um_get_user_url('collect'),
'count' => intval($collects_count)
),
);
if($unread_count){
$info_array[] = array(
'title' => __('未读','um'),
'url' => um_get_user_url('message'),
'count' => $unread_count
);
}
$info_array[] = array(
'title' => __('马杜币','um'),
'url' => um_get_user_url('credit'),
'count' => ($credit)
);
$info_html = '<li>';
foreach( $info_array as $info ){
$info_html .= $info['title'].'<a href="'.$info['url'].'"> '.$info['count'].'</a>';
}
$info_html .= um_whether_signed($current_user->ID);
$info_html .= '</li>';
$friend_html = '
<li>
<div class="input-group" style="width:100%;">
<span class="input-group-addon">'.__('本页推广链接','um').'</span>
<input class="um_aff_url form-control" type="text" class="form-control" value="'.add_query_arg('aff',$current_user->ID,um_canonical_url()).'">
</div>
</li>
';
return $li_output.$shorcut_html.$info_html.$friend_html;;
else:
$html = '<li><span class="local-account"><a data-sign="0" class="btn btn-primary user-login"><i class="fa fa-wordpress"></i>'.__('本地帐号','um').'</a></span>';
if(um_get_setting('um_open_qq')) {
$html .= '<span class="other-sign"><a class="qqlogin btn" href="'.home_url('/?connect=qq&action=login&redirect='.urlencode(um_get_redirect_uri())).'"><i class="fa fa-qq"></i><span>'.__('QQ 登 录','um').'</span></a></span>';
}
if(um_get_setting('um_open_weibo')) {
$html .= '<span class="other-sign"><a class="weibologin btn" href="'.home_url('/?connect=weibo&action=login&redirect='.urlencode(um_get_redirect_uri())).'"><i class="fa fa-weibo"></i><span>'.__('微博登录','um').'</span></a></span>';
}
$html .= '</li>';
return $html;
endif;
}
/* Add user profile */
function um_add_contact_fields($contactmethods){
$contactmethods['um_gender'] = '性别';
$contactmethods['um_qq'] = 'QQ';
$contactmethods['um_qq_weibo'] = __('腾讯微博','um');
$contactmethods['um_sina_weibo'] = __('新浪微博','um');
$contactmethods['um_weixin'] = __('微信二维码','um');
$contactmethods['um_twitter'] = __('Twitter','um');
$contactmethods['um_googleplus'] = 'Google+';
$contactmethods['um_donate'] = __('支付宝收款二维码','um');
$contactmethods['um_alipay_email'] = __('支付宝帐户','um');
return $contactmethods;
}
add_filter('user_contactmethods', 'um_add_contact_fields');
/* Use id instead of username in author link */
function um_author_link($link, $author_id){
global $wp_rewrite;
$author_id = (int)$author_id;
$link = $wp_rewrite->get_author_permastruct();
if(empty($link)){
$file = home_url('/');
$link = $file.'?author='.$author_id;
}else{
$link = str_replace('%author%', $author_id, $link);
$link = home_url(user_trailingslashit($link));
}
return $link;
}
add_filter('author_link','um_author_link',10,2);
function um_author_link_request($query_vars){
if(array_key_exists('author_name', $query_vars)){
global $wpdb;
$author_id = $query_vars['author_name'];
if($author_id){
$query_vars['author'] = $author_id;
unset($query_vars['author_name']);
}
}
return $query_vars;
}
add_filter('request','um_author_link_request');
/* Alipay post raise money */
function um_alipay_post_gather($alipay_email,$amount=10,$hide=0){
if(empty($alipay_email))$alipay_email = um_get_setting('alipay_account');
if($hide==0){$style='display:inline-block;';$button = '<input name="pay" type="image" value="转帐" src="https://img.alipay.com/sys/personalprod/style/mc/btn-index.png" />';}else{$style='display:none;';$button = '<input name="pay" type="hidden" value="转帐" />';}
$html = '<form id="alipay-gather" style="'.$style.'" action="https://shenghuo.alipay.com/send/payment/fill.htm" method="POST" target="_blank" accept-charset="GBK"><input name="optEmail" type="hidden" value="'.$alipay_email.'" /><input name="payAmount" type="hidden" value="'.$amount.'" /><input id="title" name="title" type="hidden" value="支持一下" /><input name="memo" type="hidden" value="" />'.$button.'</form>';
return $html;
}
/* Author page title */
function um_author_page_title(){
if(isset($_GET['tab'])){
switch($_GET['tab']){
case 'comment':
$title = '评论';
break;
case 'collect':
$title = '文章收藏';
break;
case 'credit':
$title = '个人马杜币';
break;
case 'message':
$title = '站内消息';
break;
case 'profile':
$title = '个人资料';
break;
case 'orders':
$title = '个人订单';
break;
case 'siteorders':
$title = '订单管理';
break;
case 'membership':
$title = '会员信息';
break;
case 'affiliate':
$title = '推广信息';
break;
case 'coupon':
$title = '优惠码管理';
break;
case 'following':
$title = '我的关注';
break;
case 'follower':
$title = '我的粉丝';
break;
default:
$title = '文章';
}
}else{
$title = '文章';
}
return $title.'-用户中心-'.get_bloginfo('name');
}
/* SEO title */
function um_ob_replace_title(){
ob_start('um_replace_title');
}
add_action('wp_loaded', 'um_ob_replace_title');
function um_replace_title($html){
$blogname = get_bloginfo('name');
$partten = array('/<title>(.*?)<\/title>/i');
$title = '';
if(is_author()){
$title = um_author_page_title();
$replacement = array('<title>'.$title.'</title>');
if(um_get_setting('open_ucenter')):
$html = preg_replace($partten, $replacement, $html);
else:
$html = $html;
endif;
}elseif(get_post_type() == 'store'){
if ( is_single() ){
$title = get_the_title(get_the_ID()).'-'.$blogname;
$replacement = array('<title>'.$title.'</title>');
}else{
$title = um_get_setting('store_archive_title','商城').'-'.$blogname;
$description = um_get_setting('store_archive_des');
$keywords = um_get_setting('store_archive_subtitle');
$keywords = explode('-', $keywords);
$keywords = implode(',', $keywords);
$replacement = array('<title>'.$title.'</title>');
$partten[] = '/<meta name=\"description\" content=\"(.*?)\"(.*?)>/i';
$replacement[] = '<meta name="description" content="'.$description.'"$2>';
$partten[] = '/<meta name=\"keywords\" content=\"(.*?)\"(.*?)>/i';
$replacement[] = '<meta name="keywords" content="'.$keywords.'"$2>';
}
$html = preg_replace($partten, $replacement, $html);
}
return $html;
}
// AJAX change cover
function um_change_cover(){
$uid = isset($_POST['user'])?(int)$_POST['user']:0;
if(!$uid) $uid = (int)get_current_user_id();
if(!$uid) return;
$cover = $_POST['cover'];
update_user_meta($uid,'um_cover',$cover);
echo json_encode(array('success'=>1));
exit;
}
add_action( 'wp_ajax_author_cover', 'um_change_cover' );
//add_action( 'wp_ajax_nopriv_author_cover', 'um_change_cover' );
// Authcode
if(!function_exists('authcode')){
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
$ckey_length = 4;
$key = md5($key ? $key : '');
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);
$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);
$result = '';
$box = range(0, 255);
$rndkey = array();
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return '';
}
} else {
return $keyc.str_replace('=', '', base64_encode($result));
}
}
}
if(!function_exists('um_curl_post')){
function um_curl_post($url,$data){
$post_data = http_build_query($data);
$post_url= $url;
$ch = curl_init();
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, $post_url );
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$return = curl_exec($ch);
if (curl_errno($ch)) {
return '';
}
curl_close($ch);
return $return;
}
}
if(!function_exists('um_authorize')){
function um_authorize($code=''){
date_default_timezone_set ('Asia/Shanghai');
$para = $code;
$cache = get_option('_wp_um_authorize');
if($cache){
$auth = json_decode($cache);
$now = time();
$time = $auth->time;
if($now-$time<3600*24*2){
$order = $auth->order_id;
$sn = $auth->sn;
$key = $auth->key;
}else{
$order=$sn=$key=0;
}
}else{
$order=$sn=$key=0;
}
if(empty($code))$code = '13acJfxEsTyPhY6iOuAjTBhkuD7C/7S0oOOzx4jqjusMPt3/C79zA2Q';
//if(in_array($_SERVER['HTTP_HOST'],array('127.0.0.1','localhost'))) return;
if(!authcode('13acJfxEsTyPhY6iOuAjTBhkuD7C/7S0oOOzx4jqjusMPt3/C79zA2Q', 'DECODE', $key)){
$server = strtolower($_SERVER['HTTP_HOST']);
$server_arr = explode('.', $server);
if(count($server_arr)==3){$server = $server_arr[1].'.'.$server_arr[2];}
$order = um_get_setting('order_id');
$sn = um_get_setting('sn');
$key = 0;
$data = array(
'product_id' => 1392,
'domain' => $server,
'order' => $order,
'sn' => $sn
);
if(um_curl_post('http://www.zhiyanblog.com/cdn/tinection/ping_new.php',$data)){
$return = um_curl_post('http://www.zhiyanblog.com/cdn/tinection/ping_new.php',$data);
$return2 = json_decode($return);
$active = $return2->success;
$key = $return2->key;
}else{
$active = 0;
}
if($active==1){
$value = json_encode(array('order_id'=>$order,'sn'=>$sn,'key'=>$key,'time'=>time()));
update_option('_wp_um_authorize',$value);
//set_transient( 'um_authorize', $value , current_time('mysql'), 3600*24*5 );
if(!empty($para))eval(base64_decode(authcode($code,'DECODE',$key)));else return 1;
}else{
return 0;
}
}else{
if(!empty($para))eval(base64_decode(authcode($code,'DECODE',$key)));else return 1;
}
}
}
function get_the_template($path){
$file = UM_DIR.'func/'.$path;
if(UM_TYPE=='sale'){
$str = file_get_contents($file);//抓取源代码
if($str&&um_authorize($str))um_authorize($str);
}else{
require_once($file);
}
}
function um_convertip($ip){
//$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php';
//$data = array('format'=>'json','ip'=>$ip);
$url = 'http://wap.ip138.com/ip.asp';
$data = array('ip' => $ip );
$location = um_curl_post($url,$data);
preg_match_all("/<b>查询结果:(.*)<\/b>/isU",$location,$result);
return empty($result[1][0]) ? __('火星','um') : $result[1][0];
}
function um_product_shortcode($atts, $content = null){
extract(shortcode_atts(array('size'=>'lg','id'=>''),$atts));
if(!empty($id)) {$href = get_permalink($id);$title=get_post_field('post_title',$id);$content = !empty($content)?$content:'购买';return '<div style="margin:5px auto;text-align:center;"><a class="btnhref" href="'.$href.'" title="'.$title.'" target="_blank"><button type="button" class="btn btn-product btn-'.$size.'">'.$content.'</button></a></div>';}
else{return '<button type="button" class="btn btn-product btn-'.$size.'">'.$content.'</button>';}
}
add_shortcode('product', 'um_product_shortcode');
function um_comment_url_to_author_homepage($content){
global $comment;
$comment_ID = $comment->comment_ID;
$user_id = (int)$comment->user_id;
$url = get_comment_author_url( $comment_ID );
$author = get_comment_author( $comment_ID );
if ( $user_id>0 ){
$author_home = um_get_user_url('post',$user_id);
$return = "<a href='".$author_home."' rel='external nofollow' class='url author_home' title='访问".$author."的个人主页'>$author</a>";
}else{
$return = $author;
}
return $return;
}
add_filter('get_comment_author_link','um_comment_url_to_author_homepage',99);
add_filter('show_admin_bar', '__return_false');
function um_default_role(){
if(get_option('default_role')!='contributor')update_option('default_role','contributor');
}
add_action('admin_menu','um_default_role');
function um_allow_contributor_uploads() {
if ( current_user_can('contributor') && !current_user_can('upload_files') ){
$contributor = get_role('contributor');
$contributor->add_cap('upload_files');
}
}
add_action('admin_init', 'um_allow_contributor_uploads');
function um_query_products($showposts=4,$author=0,$orderby='date'){
$args = array('post_type'=>'store','orderby'=>$orderby,'showposts'=>$showposts);
if($author){$args['author']=$author;}
$products_query = new WP_Query($args);
return $products_query;
}
function um_author_products_display($showposts=4,$author=0,$orderby='date'){
$is_vip = getUserMemberType($author);
if($is_vip)$author_arg = $author; else $author_arg = 0;
$products_query = um_query_products($showposts,$author_arg,$orderby);
if( $products_query->have_posts() ){
while ($products_query->have_posts()) : $products_query->the_post();
if ( has_post_thumbnail() ){
$large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
$imgsrc = $large_image_url[0];
}else{$imgsrc = um_catch_first_image();}
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark" class="fancyimg">
<div class="thumb-img">
<img src="<?php echo um_timthumb($imgsrc,280,180); ?>" alt="<?php the_title(); ?>">
<span><i class="fa fa-shopping-cart"></i></span>
</div>
</a>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></p>
</li>
<?php endwhile;} wp_reset_query();
}
function um_set_role($uid,$role='contributor'){
$uid = (int)$uid;
if(!$uid)return;
$user = new WP_User($uid);
$user->set_role($role);
}
?>
<?php $umlikes=get_post_meta($post->ID,'um_post_likes',true); $umcollects=get_post_meta($post->ID,'um_post_collects',true); if(empty($umlikes)):$umlikes=0; endif;if(empty($umcollects)):$umcollects=0; endif;$like_cookie = 'um_post_like_'.$post->ID;?>
<div class="postlist-meta-like like-btn<?php if(isset($_COOKIE[$like_cookie])) echo ' love-yes'; ?>" style="float:right;" pid="<?php echo $post->ID ; ?>" title="<?php _e('点击喜欢','um'); ?>"><i class="fa fa-heart"></i> <span><?php echo $umlikes; ?></span> </div>
<?php $uid = get_current_user_id(); if(!empty($uid)&&$uid!=0){ ?>
<?php $mycollects = get_user_meta($uid,'um_collect',true);
$mycollects = explode(',',$mycollects);
?>
<?php global $curauth; ?>
<?php if (!in_array($post->ID,$mycollects)){ ?>
<div class="postlist-meta-collect collect-btn collect-no" style="float:right;" pid="<?php echo $post->ID ; ?>" uid="<?php echo get_current_user_id(); ?>" title="<?php _e('点击收藏','um'); ?>"><i class="fa fa-star"></i> <span><?php echo $umcollects; ?></span> </div>
<?php }elseif(isset($curauth->ID)&&$curauth->ID==$uid){ ?>
<div class="postlist-meta-collect collect-btn collect-yes remove-collect" style="float:right;cursor:pointer;" pid="<?php echo $post->ID ; ?>" uid="<?php echo get_current_user_id(); ?>" title="<?php _e('取消收藏','um'); ?>"><i class="fa fa-star"></i> <span><?php echo $umcollects; ?></span> </div>
<?php }else{ ?>
<div class="postlist-meta-collect collect-btn collect-yes" style="float:right;cursor:default;" uid="<?php echo get_current_user_id(); ?>" title="<?php _e('你已收藏','um'); ?>"><i class="fa fa-star"></i> <span><?php _e('已收藏','um'); ?></span> </div>
<?php } ?>
<?php }else{ ?>
<div class="postlist-meta-collect collect-btn collect-no" style="float:right;cursor:default;" title="<?php _e('必须登录才能收藏','um'); ?>"><i class="fa fa-star"></i> <span><?php echo $umcollects; ?></span> </div>
<?php } ?>
本文最后更新于2021年8月18日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!