Домой Wp-Recall WP-Recall: Проблемы и решения Крашит дополнение при обновлении wp-recall
4ответ(ов) в теме
apostol
не в сети 9 лет
На сайте с 07.03.2015
Участник
1
13:04

При обновлении wp-recall до крайней версии с v.13.8.0 фатал ерор происходит, логи:
PHP Fatal error: Call to undefined function add_tab_rcl() in /home/ocoznanie/web/ocoznanie.ru/public_html/wp-content/wp-recall/add-on/shortcode-tab/index.php on line 8

ссылаются на индекс файл дополнения к wp-recall сделанного на заказ, на строку:

add_tab_rcl('shortcode-edit','shortcode_edit_block','Шорткоды',array('public'=>0,'class'=>'fa-files-o','order'=>20));

Вот весь код того файла:

<?php 
//	Подключаем функции обработки шорткодов
include_once('shortcodes.php');

//	Добавляем страницу настройки в меню
add_action('init','add_shortcode_editor');
function add_shortcode_editor(){
    add_tab_rcl('shortcode-edit','shortcode_edit_block','Шорткоды',array('public'=>0,'class'=>'fa-files-o','order'=>20));
}
function add_tab_shortcodes_rcl($array_tabs){
	$array_tabs['shortcode-edit']='shortcode_edit_block';
	return $array_tabs;
}
add_filter('ajax_tabs_rcl','add_tab_shortcodes_rcl');

////////////////////////////////////////////////////////////////////////////
//	Фронт
////////////////////////////////////////////////////////////////////////////
function shortcode_edit_block($user_lk){
	global $user_LK;		
	$author = get_the_author_meta('display_name',$user_LK);									//	Получаем имя автора
	$user_id = get_current_user_id();														//	Получаем id автора
	$query = new WP_Query( 'post_type=shortcodes&posts_per_page=1&author='.$user_id );		//	Делаем  выборку для следующей проверки
	$user_shortcodes = $query->post_count;													//	Переменная где находится кол-во опубликованных страниц		
	$post_shortcodes = (array)$query->post->ID;
	$post_id = $post_shortcodes[0];															//	ID пстраницы автора с мета полями	
	//	Проверяем пользователя на наличие созданных шорткодов. Если у пользователя нет созданных страниц, то создаем страницу с полями для шорткодов.
	if ( $user_shortcodes == 0 ) {		
		$source = array(	
			'post_title' => 'Шорткоды ' . $author,					// - заголовок.
			'post_name' => 'shortcodes_'.$author,					// - "слаг", синоним пути.
			'post_excerpt' => '',									// - цитата, анонс.
			'post_content' => '',									// - содержимое/контент.
			'post_status' => 'publish',								// - статус материала: опубликованный.
			'post_author' => $user_id,								// - автор материала.
			'post_type' => 'shortcodes',							// - тип контента.
			'tags_input' => '',										// - метки/теги.
			'comment_status' => 'open'								// - комментирование.		
		);
		wp_insert_post($source);	
	}		
	//	Если у пользователя есть страница, то обновляем данные страницы
	else {	
		$source = array(	
			'ID' =>	$post_id,	 									// - ID записи.
			'post_title' => 'Шорткоды ' . $author,					// - заголовок.
			'post_name' => 'shortcodes_'.$author,					// - "слаг", синоним пути.
			'post_excerpt' => '',									// - цитата, анонс.
			'post_content' => '',									// - содержимое/контент.
			'post_status' => 'publish',								// - статус материала: опубликованный.
			'post_author' => $user_id,								// - автор материала.
			'post_type' => 'shortcodes',							// - тип контента.
			'tags_input' => '',										// - метки/теги.
			'comment_status' => 'open'								// - комментирование.
		);
		wp_insert_post($source);			
	}	
	//	 Обработка данных формы
	//define('WP_USE_THEMES', false);	
	//require( $_SERVER['DOCUMENT_ROOT'] .'/wp-blog-header.php');		
	if(isset($_POST['send_one']) == '1') {
		$your_shortcode_one = $_POST['your_shortcode_one'];
		$text_shortcode_one = $_POST['shortcode_one'];
		$text_shortcode_two = $_POST['shortcode_two'];			
		
		$your_shortcode_two = $_POST['your_shortcode_two'];
		$text_shortcode_three = $_POST['shortcode_three'];
		$text_shortcode_four = $_POST['shortcode_four'];				
		
		$your_shortcode_three = $_POST['your_shortcode_three'];
		$text_shortcode_five = $_POST['shortcode_five'];
		$text_shortcode_six = $_POST['shortcode_six'];			
		
		update_post_meta($post_id, 'your_shortcode_one', $your_shortcode_one);
		update_post_meta($post_id, 'shortcodes_fields_one', $text_shortcode_one);
		update_post_meta($post_id, 'shortcodes_fields_two', $text_shortcode_two);
		
		update_post_meta($post_id, 'your_shortcode_two', $your_shortcode_two);
		update_post_meta($post_id, 'shortcodes_fields_three', $text_shortcode_three);
		update_post_meta($post_id, 'shortcodes_fields_four', $text_shortcode_four);
		
		update_post_meta($post_id, 'your_shortcode_three', $your_shortcode_three);
		update_post_meta($post_id, 'shortcodes_fields_five', $text_shortcode_five);
		update_post_meta($post_id, 'shortcodes_fields_six', $text_shortcode_six);
	} 

	$your_shortcode_one = get_post_meta($post_id, 'your_shortcode_one', true);
	$shortcodes_text_fields_one = get_post_meta($post_id, 'shortcodes_fields_one', true);	
	$shortcodes_text_fields_two = get_post_meta($post_id, 'shortcodes_fields_two', true);

	$your_shortcode_two = get_post_meta($post_id, 'your_shortcode_two', true);
	$shortcodes_text_fields_three = get_post_meta($post_id, 'shortcodes_fields_three', true);	
	$shortcodes_text_fields_four = get_post_meta($post_id, 'shortcodes_fields_four', true);

	$your_shortcode_three = get_post_meta($post_id, 'your_shortcode_three', true);
	$shortcodes_text_fields_five = get_post_meta($post_id, 'shortcodes_fields_five', true);	
	$shortcodes_text_fields_six = get_post_meta($post_id, 'shortcodes_fields_six', true);
	
	if ( ( $shortcodes_text_fields_one =='' ) || ( $shortcodes_text_fields_one =='' ) || ( $shortcodes_text_fields_three =='' ) || ( $shortcodes_text_fields_four =='' ) || ( $shortcodes_text_fields_five =='' ) || ( $shortcodes_text_fields_six =='' ) ) {
		$your_shortcode_one = 'default';
		$your_shortcode_two = 'default';
		$your_shortcode_three = 'default';
	}

	$form = '<div class="public_block">';  	
	$form .= '<form method="POST" action="" class="">';	
	$form .= '	
		<table>
			<tr>
				<td>';
	if ( $your_shortcode_one == "default" ) {		
		$form .= '	
				<input type="radio" name="your_shortcode_one" value="default"  checked="checked" /> По умолчанию
				<input type="radio" name="your_shortcode_one" value="authoredit" /> Шорткод автора';
	} else {
		$form .= '	
				<input type="radio" name="your_shortcode_one" value="default" /> По умолчанию
				<input type="radio" name="your_shortcode_one" value="authoredit"  checked="checked"/> Шорткод автора';	
	}	
	$form .= '	
				</td>
			</tr>
			<tr>
				<td>';				
	ob_start(); 
	wp_editor( $shortcodes_text_fields_one, 'wpeditorone', array('textarea_name' => 'shortcode_one','media_buttons' => false,'textarea_rows' => 8) );
	$form .= ob_get_contents();
	ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td>';
			ob_start(); 
			wp_editor( $shortcodes_text_fields_two, 'wpeditortwo', array('textarea_name' => 'shortcode_two','media_buttons' => false,'textarea_rows' => 8) );
			$form .= ob_get_contents();
			ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td colspan="2">						
					<button id="send_one" name="send_one" class="btn btn-primary">Сохранить</button>		
				</td>
			</tr>
		</table>
		<hr>
		<table>
			<tr>
				<td>';
	if ( $your_shortcode_two == "default" ) {		
		$form .= '	
				<input type="radio" name="your_shortcode_two" value="default"  checked="checked" /> По умолчанию
				<input type="radio" name="your_shortcode_two" value="authoredit" /> Шорткод автора';
	} else {
		$form .= '	
				<input type="radio" name="your_shortcode_two" value="default" /> По умолчанию
				<input type="radio" name="your_shortcode_two" value="authoredit"  checked="checked"/> Шорткод автора';	
	}	
	$form .= '	
				</td>
			</tr>
			<tr>
				<td>';				
	ob_start(); 
	wp_editor( $shortcodes_text_fields_three, 'wpeditorthree', array('textarea_name' => 'shortcode_three','media_buttons' => false,'textarea_rows' => 8) );
	$form .= ob_get_contents();
	ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td>';
			ob_start(); 
			wp_editor( $shortcodes_text_fields_four, 'wpeditorfour', array('textarea_name' => 'shortcode_four','media_buttons' => false,'textarea_rows' => 8) );
			$form .= ob_get_contents();
			ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td colspan="2">						
					<button id="send_one" name="send_one" class="btn btn-primary">Сохранить</button>		
				</td>
			</tr>
		</table>
		<hr>
		<table>
			<tr>
				<td>';
	if ( $your_shortcode_three == "default" ) {		
		$form .= '	
				<input type="radio" name="your_shortcode_three" value="default"  checked="checked" /> По умолчанию
				<input type="radio" name="your_shortcode_three" value="authoredit" /> Шорткод автора';
	} else {
		$form .= '	
				<input type="radio" name="your_shortcode_three" value="default" /> По умолчанию
				<input type="radio" name="your_shortcode_three" value="authoredit"  checked="checked"/> Шорткод автора';	
	}	
	$form .= '	
				</td>
			</tr>
			<tr>
				<td>';				
	ob_start(); 
	wp_editor( $shortcodes_text_fields_five, 'wpeditortfive', array('textarea_name' => 'shortcode_five','media_buttons' => false,'textarea_rows' => 8) );
	$form .= ob_get_contents();
	ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td>';
			ob_start(); 
			wp_editor( $shortcodes_text_fields_six, 'wpeditorsix', array('textarea_name' => 'shortcode_six','media_buttons' => false,'textarea_rows' => 8) );
			$form .= ob_get_contents();
			ob_end_clean();
	$form .= 	
				'</td>
			</tr>
			<tr>
				<td colspan="2">						
					<button id="send_one" name="send_one" class="btn btn-primary">Сохранить</button>		
				</td>
			</tr>
		</table>		
	</form>';	
	$form .= '</div>';
	return $form;
}

////////////////////////////////////////////////////////////////////////////
//	Админка
////////////////////////////////////////////////////////////////////////////
// Добавляем настройки плагина в админку
add_action('admin_menu', 'public_editor_form_options_page_rcl',30);
function public_editor_form_options_page_rcl(){
	add_submenu_page( 'manage-wprecall', 'Настройки шорткодов', 'Шорткоды', 'manage_options', 'shortcode-editors', 'recall_shortcod_setting');
}
//	Функция вывода настроек в админке
function recall_shortcod_setting() {
?>
	<div class="wrap">
		<h2>Настройки дополнения Shortcode Tabb Wp-Recall</h2>
		<hr>
		<?php 			
			include_once 'admin-shortcodes.php';
			return shortcodes_setting(); 		
		?>
	</div>
<?php 
} 
?>

Автор дополнения сейчас не доступен, у них там мобилизация и т.д., так что он помочь не может(

0
Вова (Otshelnik-Fm)
не в сети 22 минуты
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
13:14

add_tab_rcl('shortcode-edit','shortcode_edit_block','Шорткоды',array('public'=>0,'class'=>'fa-files-o','order'=>20));

Замените на
rcl_tab('shortcode-edit','shortcode_edit_block','Шорткоды',array('public'=>0,'class'=>'fa-files-o','order'=>20));

1
apostol
не в сети 9 лет
На сайте с 07.03.2015
Участник
3
13:19

Спасибо, все заработало) Видимо функцию в обновлении поменяли ? За этим не следил особо..)

0
Вова (Otshelnik-Fm)
не в сети 22 минуты
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
13:32

Была причина для смены - правила репозитория WordPress (если мне не изменяет память)

0
Тема закрыта. Публикация новых сообщений запрещена.