Salta la navigazione

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

Nessun supporter è disponibile a lavorare oggi sul forum Italian. Sentitevi liberi di creare ticket e li gestiremo il prima possibile quando saremo online. Grazie per la comprensione.

Etichettato: 

Questo ticket contiene 32 risposte, ha 2 voci.

Ultimo aggiornamento da Paola Mendiburu 1 anno, 6 mesi fa.

Assistito da: Paola Mendiburu.

Autore Messaggi
Ottobre 20, 2022 a 9:34 am #12277349

Paola Mendiburu
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Ciao!

Ho ricevuto una soluzione dal team di compatibilità.

Apri il file wp-content\plugins\tutor\classes\Rewrite_Rules.php
Sostituisci il metodo Rewrite_Rules::change_lesson_single_url() (attorno alla riga 91):

function change_lesson_single_url($post_link, $id = 0) {
		$post = get_post($id);

		global $wpdb;

		$course_base_slug = 'sample-course';

		if (is_object($post) && $post->post_type == $this->lesson_post_type) {
			//Lesson Permalink
			$course_id = tutor_utils()->get_course_id_by('lesson', $post->ID);

			if ($course_id) {
				$course = $wpdb->get_row($wpdb->prepare("SELECT post_name from {$wpdb->posts} where ID = %d ", $course_id));
				if ($course) {
					$course_base_slug = $course->post_name;
				}
				return home_url("/{$this->course_post_type}/{$course_base_slug}/{$this->lesson_base_permalink}/" . $post->post_name . '/');
			} else {
				return home_url("/{$this->course_post_type}/sample-course/{$this->lesson_base_permalink}/" . $post->post_name . '/');
			}
		} elseif (is_object($post) && $post->post_type === 'tutor_quiz') {
			//Quiz Permalink
			$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $post->post_parent));
			if ($course) {
				//Checking if this topic
				if ($course->post_type !== $this->course_post_type) {
					$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $course->post_parent));
				}
				//Checking if this lesson
				if (isset($course->post_type) && $course->post_type !== $this->course_post_type) {
					$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $course->post_parent));
				}

				$course_post_name = isset($course->post_name) ? $course->post_name : 'sample-course';
				return home_url("/{$this->course_post_type}/{$course_post_name}/tutor_quiz/{$post->post_name}/");
			} else {
				return home_url("/{$this->course_post_type}/sample-course/tutor_quiz/{$post->post_name}/");
			}
		}
		return $post_link;
	}

sostituirlo con il seguente codice:

function change_lesson_single_url($post_link, $id = 0) {
		$post = get_post($id);

		global $wpdb;

		$course_base_slug = 'sample-course';

		$course_post_type = $this->course_post_type;

		if (class_exists('SitePress')) {
			$course_post_type = apply_filters('wpml_translate_single_string', $course_post_type, 'WordPress', 'URL slug: courses' );
		}

		if (is_object($post) && $post->post_type == $this->lesson_post_type) {
			//Lesson Permalink
			$course_id = tutor_utils()->get_course_id_by('lesson', $post->ID);

			if ($course_id) {
				$course = $wpdb->get_row($wpdb->prepare("SELECT post_name from {$wpdb->posts} where ID = %d ", $course_id));
				if ($course) {
					$course_base_slug = $course->post_name;
				}
				return home_url("/{$course_post_type}/{$course_base_slug}/{$this->lesson_base_permalink}/" . $post->post_name . '/');
			} else {
				return home_url("/{$course_post_type}/sample-course/{$this->lesson_base_permalink}/" . $post->post_name . '/');
			}
		} elseif (is_object($post) && $post->post_type === 'tutor_quiz') {
			//Quiz Permalink
			$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $post->post_parent));
			if ($course) {
				//Checking if this topic
				if ($course->post_type !== $this->course_post_type) {
					$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $course->post_parent));
				}
				//Checking if this lesson
				if (isset($course->post_type) && $course->post_type !== $this->course_post_type) {
					$course = $wpdb->get_row($wpdb->prepare("SELECT ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = %d ", $course->post_parent));
				}

				$course_post_name = isset($course->post_name) ? $course->post_name : 'sample-course';
				return home_url("/{$course_post_type}/{$course_post_name}/tutor_quiz/{$post->post_name}/");
			} else {
				return home_url("/{$course_post_type}/sample-course/tutor_quiz/{$post->post_name}/");
			}
		}
		return $post_link;
	}

Dimmi se hai bisogno di aiuto per applicare la soluzione.

Grazie,

Paola

Ottobre 20, 2022 a 1:34 pm #12280313

cristinaM-43

Ciao Paola,
caspita sono stati rapidissimi!

Ho sostituito il codice con quello indicato, sono andata in un corso e l'ho impostato come privato. Le lezioni hanno lo slug corsi in italiano e courses in inglese.

Credo che il problema sia stato risolto! (Yuppi).
Ogni volta che aggiornano Tutor dovrò sostituire il codice, giusto? Oppure provvedete voi a comunicare a Tutor questo aggiornamento?

Grazie,
Cristina

Ottobre 20, 2022 a 2:05 pm #12280489

Paola Mendiburu
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Sono contenta per te.

Li avviseremo a tutor e sarebbe bene se anche tu notificassi loro per accelerare il processo.

Grazie,

Paola

This ticket is now closed. If you're a WPML client and need related help, please open a new support ticket.