function rcl_add_cart_button($content) { global $post, $rmag_options; if ($post->post_type !== 'products') { return $content; } $metas = rcl_get_postmeta_array($post->ID); $price = $metas['price-products']; $outsale = $metas['outsale']; $button = '<div class="price-basket-product">'; if (!$outsale) { if ($metas['availability_product'] == 'empty') { //если товар цифровой if ($price) { $button .= 'Цена: ' . rcl_get_price($post->ID) . ' <input type="text" size="2" name="number_product" id="number_product" value="1">'; } else { $button .= 'Бесплатно '; } $button .= rcl_get_button('Добавить в корзину', '#', array('icon' => false, 'class' => 'add_basket', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $post->ID)); } else { if ($rmag_options['products_warehouse_recall'] == 1) { $amount = get_post_meta($post->ID, 'amount_product', 1); if ($amount > 0 || $amount == false) { $button .= 'Цена: ' . rcl_get_price($post->ID) . ' <input type="text" size="2" name="number_product" id="number_product" value="1">' . rcl_get_button('Добавить в корзину', '#', array('icon' => false, 'class' => 'add_basket', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $post->ID)); } } else { $button .= 'Цена: ' . rcl_get_price($post->ID) . ' <input type="text" size="2" name="number_product" id="number_product" value="1">' . rcl_get_button('Добавить в корзину', '#', array('icon' => false, 'class' => 'add_basket', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $post->ID)); } } } $button .= '</div>'; $button = apply_filters('cart_button_product_page', $button); $content .= $button; return $content; }
function rcl_get_cart_button($product_id) { if (get_post_meta($product_id, 'outsale', 1)) { return false; } if (get_post_meta($product_id, 'availability_product', 1) == 'empty') { //если товар цифровой $button = '<div class="cart-button">' . rcl_get_button('В корзину', '#', array('icon' => false, 'class' => 'add_basket add_to_cart', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $product_id)) . '</div>'; } else { if ($rmag_options['products_warehouse_recall'] == 1) { $amount = get_post_meta($product_id, 'amount_product', 1); if ($amount > 0 || $amount == false) { $button = '<div class="cart-button">' . rcl_get_button('В корзину', '#', array('icon' => false, 'class' => 'add_basket add_to_cart', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $product_id)) . '</div>'; } } else { $button = '<div class="cart-button">' . rcl_get_button('В корзину', '#', array('icon' => false, 'class' => 'add_basket add_to_cart', 'attr' => 'onclick="rcl_add_cart(this);return false;" data-product=' . $product_id)) . '</div>'; } } $button = apply_filters('rcl_cart_button', $button, $product_id); return $button; }
function get_chat($online = 0) { rcl_resizable_scripts(); global $user_ID, $rcl_options, $wpdb; $access = ''; $access = apply_filters('access_chat_rcl', $access, $this->user_lk); if ($this->room) { $user_ID = $this->room; $user_lk = 0; $online = 1; } else { $user_lk = $this->user_lk; } if (!$this->room) { $where = $wpdb->prepare("WHERE author_mess = '%d' AND adressat_mess = '%d' OR author_mess = '%d' AND adressat_mess = '%d'", $user_ID, $this->user_lk, $this->user_lk, $user_ID); } else { $where = $wpdb->prepare("WHERE author_mess = '%d' OR adressat_mess = '%d'", $user_ID, $user_ID); } $private_messages = $wpdb->get_results("SELECT * FROM " . RCL_PREF . "private_message {$where} ORDER BY id DESC LIMIT 10"); $num_mess = $wpdb->get_var("SELECT COUNT(ID) FROM " . RCL_PREF . "private_message {$where}"); if (!$this->room) { $this->ava_user_lk = get_avatar($this->user_lk, 40); } $this->ava_user_ID = get_avatar($user_ID, 40); $max_private_mess = $rcl_options['max_private_message']; if (!$max_private_mess) { $max_private_mess = 100; } if ($num_mess > $max_private_mess && !$this->room) { $delete = $num_mess - $max_private_mess; $st = $user_ID + 100; $us = $this->user_lk + 100; $delete_num = $wpdb->query($wpdb->prepare("DELETE FROM " . RCL_PREF . "private_message WHERE author_mess = '%d' AND adressat_mess = '%d' AND status_mess NOT IN (7,%d,%d) OR author_mess = '%d' AND adressat_mess = '%d' AND status_mess NOT IN (7,%d,%d) ORDER BY id ASC LIMIT %s", $user_ID, $this->user_lk, $st, $us, $this->user_lk, $user_ID, $st, $us, $st, $us)); $num_mess = $num_mess - $delete_num; } $num = 0; if (!$rcl_options['sort_mess']) { krsort($private_messages); } foreach ((array) $private_messages as $message) { $num++; $messlist = $this->get_private_message_block_rcl($messlist, $message); if ($num == 10) { break; } } if (!$access) { $textarea = '<div class="prmess">'; if ($this->room) { $textarea .= '<span title="' . __('Interlocutor', 'wp-recall') . '" id="opponent"></span> ' . rcl_get_button(__('All contacts', 'wp-recall'), '#', array('icon' => 'fa-book', 'id' => 'get-all-contacts')); } if ($rcl_options['file_exchange'] == 1) { $textarea .= '<div id="upload-box-message" class="fa fa-paperclip recall-button rcl-upload-button"> <span>Выбрать файл</span> <span class="progress-bar"></span> <input name="filedata" id="upload-private-message" type="file"> </div>'; } $textarea .= '<span class="fa fa-exclamation-triangle notice">' . __('<b>Enter</b> - line break, <b>Ctrl+Enter</b> - send', 'wp-recall') . '</span>'; $textarea .= '<textarea name="content_mess" id="content_mess" rows="3"></textarea>'; $textarea .= ' <input type="hidden" name="adressat_mess" id="adressat_mess" value="' . $user_lk . '"> <input type="hidden" name="online" id="online" value="' . $online . '">'; $textarea .= rcl_get_smiles('content_mess'); $words = isset($rcl_options['ms_limit_words']) && $rcl_options['ms_limit_words'] ? $rcl_options['ms_limit_words'] : 400; $textarea .= '<div class="fa fa-edit" id="count-word">' . $words . '</div>'; $textarea .= '<div class="private-buttons"> ' . rcl_get_button(__('Send', 'wp-recall'), '#', array('icon' => 'fa-mail-forward', 'class' => 'addmess alignright', 'attr' => false, 'id' => false)); if ($this->get_num_important() > 0) { $textarea .= rcl_get_button(__('Important messages', 'wp-recall'), '#', array('icon' => 'fa-star', 'class' => 'important alignleft', 'id' => 'get-important-rcl')); } $textarea .= '</div>' . '<div id="resize"></div>' . '</div>'; } else { $textarea = '<div class="prmess">'; $textarea .= '<div class="ban-notice">' . $access . '</div>'; $textarea .= '<div id="resize"></div>' . '</div>'; } if (!$private_messages) { $newblock = '<div class="new_mess" align="center">' . __('Here will display correspondence history', 'wp-recall') . '</div>'; } else { $newblock = '<div class="new_mess"></div>'; } if ($num_mess > 10) { $getold = '<div class="old_mess_block"><a href="#" class="old_message">' . __('Show older messages', 'wp-recall') . '</a></div>'; } if (!$rcl_options['sort_mess']) { $messlist = $getold . $messlist; $messlist .= $newblock; $privat_block = '<div id="resize-content"><div id="message-list">' . $messlist . '</div></div>'; $privat_block .= $textarea; $privat_block .= "<script>jQuery(document).ready(function() {\n\n var div = jQuery('#resize-content');\n div.scrollTop( div.get(0).scrollHeight );\n\n var chatHeight = 'chatHeight';\n var chatNow = jQuery.cookie(chatHeight);\n if(chatNow != null)\n jQuery('#resize-content,#resize').css('height', chatNow + 'px');\n jQuery('#resize').resizable( {\n alsoResize: '#resize-content',\n stop: function(event, ui) {\n chatNow = jQuery('#resize-content').height();\n jQuery.cookie(chatHeight, chatNow);\n }\n });\n });" . "</script>"; } else { $privat_block = $textarea; $messlist = $newblock . $messlist; $messlist .= $getold; $privat_block .= '<div id="message-list">' . $messlist . '</div>'; } $privat_block .= "<script type='text/javascript'>var old_num_mess = " . $num_mess . "; var block_mess = 1; var user_old_mess = " . $user_lk . ";</script>"; if ($rcl_options['block_offrequest'] == 1 && $online == 0 || $access) { return $privat_block; } if (!$rcl_options['update_private_message']) { $rcl_options['update_private_message'] = 10; } $sec_update = 1000 * $rcl_options['update_private_message']; $privat_block .= "<script type='text/javascript'>\n\n\t\tvar update_mass_ID; var max_sec_update_rcl=0;\n\n\t\tfunction update_mass(){"; if ($rcl_options['max_request_new_message'] > 0) { $privat_block .= "\n\t\t\tmax_sec_update_rcl++; if(max_sec_update_rcl>" . $rcl_options['max_request_new_message'] . ") return false;\n\t\t\t"; } $privat_block .= "jQuery(function(){\n\t\t\t\t\tvar dataString_new_mess = 'action=update_message_history_recall&user='******'POST',\n\t\t\t\t\tdata: dataString_new_mess,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\turl: wpurl+'wp-admin/admin-ajax.php',\n\t\t\t\t\tsuccess: function(data){\n\t\t\t\t\t\tif(data['recall']==100){\n\t\t\t\t\t\t\tjQuery('.new_mess').replaceWith(data['message_block']);"; if (!$rcl_options['sort_mess']) { $privat_block .= "var div = jQuery('#resize-content');\n div.scrollTop( div.get(0).scrollHeight );"; } $privat_block .= "jQuery.ionSound.play('water_droplet');\n\t\t\t\t\t\t\tmax_sec_update_rcl = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(data['read']==200){\n\t\t\t\t\t\t\tjQuery('.mess_status').remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t}\n\t\tsetInterval(function(){update_mass();}," . $sec_update . ");\n\t\twindow.onload=function(){update_mass();}\n\t\t</script>"; return $privat_block; }
function thumbnail_post() { echo '<div id="thumbblock-post"> <div id="thumbnail_rcl" class="alignleft">'; if ($this->thumb) { $thumb_url = wp_get_attachment_image_src($this->thumb, 'thumbnail'); echo '<span class="delete"></span><img width="100" height="100" src="' . $thumb_url[0] . '"><input type="hidden" name="thumb" value="' . $this->thumb . '">'; } echo '</div> <h3>' . __('Thumbnail', 'wp-recall') . '</h3> <div>' . rcl_get_button(__('To assign a thumbnail', 'wp-recall'), '#', array('id' => 'add_thumbnail_rcl')) . '</div> </div>'; }
function rcl_get_feed_callback_link($user_id, $name, $callback) { return '<div class="callback-link user-link-' . $user_id . '">' . rcl_get_button($name, '#', array('icon' => 'fa-rss', 'class' => 'feed-callback', 'attr' => 'data-feed=' . $user_id . ' data-callback="' . $callback . '" title="' . $name . '"')) . '</div>'; }
function cart() { global $user_ID, $products; $products = $this->get_products(); if (!$products) { return '<p>В вашей корзине пусто.</p>'; } if (!$user_ID) { $basket .= '<h3 class="title-data">Корзина <span class="weight-normal">(цены указаны в рублях)</span></h3>'; } $basket .= rcl_get_include_template('cart.php', __FILE__); $basket = apply_filters('cart_rcl', $basket); if ($this->cnt_products) { $basket .= '<div class="confirm">'; $get_fields_order = get_option('custom_orders_field'); if ($get_fields_order) { $order_field = $this->cart_fields($get_fields_order, 'order'); } if ($user_ID) { if ($order_field) { $basket .= '<h3 align="center">Для оформления заказа заполните форму ниже:</h3> <div id="regnewuser" style="display:none;"></div> <table class="form-table">' . $order_field . '</table>'; } $basket .= rcl_get_button('Оформить заказ', '#', array('icon' => false, 'class' => 'confirm_order')) . '</div>'; $basket .= "<script>\r\n jQuery(function(){\r\n jQuery('#rcl-cart').on('click','.confirm_order',function(){"; $basket .= $this->script_request('order'); $basket .= "var dataString_count = 'action=rcl_confirm_order'" . $this->request . ";\r\n jQuery.ajax({\r\n type: 'POST',\r\n data: dataString_count,\r\n dataType: 'json',\r\n url: wpurl+'wp-admin/admin-ajax.php',\r\n success: function(data){\r\n if(data['otvet']==100){\r\n jQuery('.redirectform').html(data['redirectform']);\r\n jQuery('.confirm').remove();\r\n jQuery('.add_remove').empty();\r\n } else if(data['otvet']==10){\r\n jQuery('.redirectform').html(data['amount']);\r\n } else if(data['otvet']==5){\r\n jQuery('#regnewuser').html(data['recall']);\r\n jQuery('#regnewuser').slideDown(500).delay(5000).slideUp(500);\r\n }else {\r\n alert('Ошибка проверки данных.');\r\n }\r\n }\r\n });\r\n return false;\r\n });\r\n });\r\n </script>"; } else { $get_fields = get_option('custom_profile_field'); if ($get_fields) { $order_field .= $this->cart_fields($get_fields, 'profile'); } $basket .= '<h3 align="center">Для оформления заказа заполните форму ниже:</h3> <div id="regnewuser" style="display:none;"></div> <table class="form-table"> <tr> <td><label>Укажите ваш E-mail <span class="required">*</span>:</label></td> <td><input required type="text" class="email_new_user" name="email_new_user" value=""></td> </tr> <tr> <td><label>Ваше Имя</label></td> <td><input type="text" class="fio_new_user" name="fio_new_user" value=""></td> </tr> ' . $order_field . ' </table> <p align="right">' . rcl_get_button('Оформить заказ', '#', array('icon' => false, 'class' => 'rcl_register_user_order', 'id' => false)) . '</p> </div>'; $basket .= "<script>\r\n jQuery(function(){\r\n jQuery('#rcl-cart').on('click','.rcl_register_user_order',function(){"; $basket .= $this->script_request('order'); $basket .= $this->script_request('profile'); $basket .= "\r\n var fio = jQuery('.confirm .fio_new_user').attr('value');\r\n var email = jQuery('.confirm .email_new_user').attr('value');\r\n var dataString = 'action=rcl_confirm_order&action=rcl_register_user_order&fio_new_user='******'&email_new_user='******'POST',\r\n data: dataString,\r\n dataType: 'json',\r\n url: wpurl+'wp-admin/admin-ajax.php',\r\n success: function(data){\r\n if(data['int']==100){\r\n jQuery('#regnewuser').html(data['recall']);\r\n jQuery('#regnewuser').slideDown(500);\r\n if(data['redirect']!=0){\r\n location.replace(data['redirect']);\r\n }else{\r\n jQuery('.form-table').remove();\r\n jQuery('.rcl_register_user_order').remove();\r\n }\r\n } else {\r\n jQuery('#regnewuser').html(data['recall']);\r\n jQuery('#regnewuser').slideDown(500).delay(5000).slideUp(500);\r\n }\r\n }\r\n });\r\n return false;\r\n });\r\n });\r\n </script>"; } } return '<form id="rcl-cart" method="post">' . $basket . '</form>' . '<div class="redirectform" style="text-align:center;"></div>'; }
function rcl_add_group_access_button() { global $rcl_user; echo '<div class="group-request" data-user="******">'; echo rcl_get_button(__('Approve request', 'wp-recall'), '#', array('icon' => 'fa-thumbs-up', 'class' => 'apply-request', 'attr' => 'data-request=1')); echo rcl_get_button(__('Reject request', 'wp-recall'), '#', array('icon' => 'fa-thumbs-down', 'class' => 'apply-request', 'attr' => 'data-request=0')); echo '</div>'; }
function rcl_get_button_tab($args, $button = false) { global $rcl_options, $user_LK; $link = rcl_format_url(get_author_posts_url($user_LK), $args['id_tab']); /*if(!$button) $status = 'active'; else $status = '';*/ //var_dump($button); $html_button = rcl_get_button($args['name'], $link, array('class' => rcl_get_class_button_tab($button, $args['id_tab']), 'icon' => $args['class'])); $button .= apply_filters('rcl_get_button_tab', $html_button, $args); return $button; }
function rcl_rating_navi($args) { global $rcl_rating_types, $rcl_options; $navi = false; $rcl_rating_types['edit-admin'] = array('rating_type' => 'edit-admin', 'icon' => 'fa-cogs', 'type_name' => __('Correction', 'wp-recall')); foreach ($rcl_rating_types as $type) { if (!isset($rcl_options['rating_user_' . $type['rating_type']]) || !$rcl_options['rating_user_' . $type['rating_type']]) { continue; } $args['rating_type'] = $type['rating_type']; $active = !$navi ? 'active' : ''; $icon = isset($type['icon']) ? $type['icon'] : 'fa-list-ul'; $navi .= rcl_get_button($type['type_name'], '#', array('icon' => 'fa ' . $icon, 'class' => 'get-list-votes ' . $active, 'attr' => 'onclick="rcl_get_list_votes(this);return false;" data-rating="' . rcl_encode_data_rating('user', $args) . '"')) . ' '; } return $navi; }
function rcl_get_authorize_form($type = false, $form = false) { global $user_ID, $rcl_user_URL, $rcl_options, $typeform; $typeform = $form; ob_start(); echo '<div class="panel_lk_recall ' . $type . '">'; if ($type == 'floatform') { echo '<a href="#" class="close-popup"><i class="fa fa-times-circle"></i></a>'; } if ($user_ID) { echo '<div class="username"><b>' . __('Hi', 'wp-recall') . ', ' . get_the_author_meta('display_name', $user_ID) . '!</b></div> <div class="author-avatar">'; echo '<a href="' . $rcl_user_URL . '" title="' . __('In personal account', 'wp-recall') . '">' . get_avatar($user_ID, 60) . '</a>'; if (function_exists('rcl_rating_block')) { echo rcl_rating_block(array('ID' => $user_ID, 'type' => 'user')); } echo '</div>'; echo '<div class="buttons">'; $buttons = '<p>' . rcl_get_button(__('In personal account', 'wp-recall'), $rcl_user_URL, array('icon' => 'fa-home')) . '</p> <p>' . rcl_get_button(__('Exit', 'wp-recall'), wp_logout_url(home_url()), array('icon' => 'fa-external-link')) . '</p>'; echo apply_filters('buttons_widget_rcl', $buttons); echo '</div>'; } else { $login_form = isset($rcl_options['login_form_recall']) ? $rcl_options['login_form_recall'] : 0; if ($login_form == 1 && $type != 'pageform') { $redirect_url = rcl_format_url(get_permalink($rcl_options['page_login_form_recall'])); echo '<div class="buttons">'; $buttons = '<p>' . rcl_get_button(__('Entry', 'wp-recall'), $redirect_url . 'action-rcl=login', array('icon' => 'fa-sign-in')) . '</p> <p>' . rcl_get_button(__('Registration', 'wp-recall'), $redirect_url . 'action-rcl=register', array('icon' => 'fa-book')) . '</p>'; echo apply_filters('buttons_widget_rcl', $buttons); echo '</div>'; } else { if ($login_form == 2) { echo '<div class="buttons">'; $buttons = '<p>' . rcl_get_button(__('Entry', 'wp-recall'), esc_url(wp_login_url('/')), array('icon' => 'fa-sign-in')) . '</p> <p>' . rcl_get_button(__('Registration', 'wp-recall'), esc_url(wp_registration_url()), array('icon' => 'fa-book')) . '</p>'; echo apply_filters('buttons_widget_rcl', $buttons); echo '</div>'; } else { if ($login_form == 3 || $type) { if ($typeform != 'register') { rcl_include_template('form-sign.php'); } if ($typeform != 'sign') { rcl_include_template('form-register.php'); } if (!$typeform || $typeform == 'sign') { rcl_include_template('form-remember.php'); } } else { if (!$login_form) { echo '<div class="buttons">'; $buttons = '<p>' . rcl_get_button(__('Entry', 'wp-recall'), '#', array('icon' => 'fa-sign-in', 'class' => 'rcl-login')) . '</p> <p>' . rcl_get_button(__('Registration', 'wp-recall'), '#', array('icon' => 'fa-book', 'class' => 'rcl-register')) . '</p>'; echo apply_filters('buttons_widget_rcl', $buttons); echo '</div>'; } } } } } echo '</div>'; $html = ob_get_contents(); ob_end_clean(); return $html; }
function rcl_wp_editor($args = false, $content = false) { global $rcl_options, $editpost, $formData, $user_ID; $media = isset($args['media']) ? $args['media'] : true; $wp_editor = isset($args['wp_editor']) ? $args['wp_editor'] : $formData->wp_editor; $tinymce = $wp_editor == 1 || $wp_editor == 3 ? $tinymce = 1 : 0; $quicktags = $wp_editor == 2 || $wp_editor == 3 ? $quicktags = 1 : 0; $data = array('wpautop' => 1, 'media_buttons' => 0, 'textarea_name' => 'post_content', 'textarea_rows' => 10, 'tabindex' => null, 'editor_css' => '', 'editor_class' => 'autosave', 'teeny' => 0, 'dfw' => 0, 'tinymce' => $tinymce, 'quicktags' => $quicktags); if ($media) { if ($user_ID) { echo rcl_get_button(__('To add a media file', 'wp-recall'), '#', array('icon' => 'fa-folder-open', 'id' => 'get-media-rcl')); } } if (!$content) { $content = isset($editpost->post_content) ? $editpost->post_content : ''; } wp_editor($content, 'contentarea', $data); }