Please make sure to update to WPML 4.3.6 and check our list of Known Issues before reporting

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This topic contains 1 reply, has 2 voices.

Last updated by Marcel 12 months ago.

Assigned support staff: Marcel.

Author Posts
February 25, 2019 at 11:46 am #3239488



We are stuck between two software developers. WPCourseware is not compatible with WPML and seems they are unable to help. We are also not sure that the developer understood how WPML works. Our question and their response follow:
Our Question: "I hope you can assist me. I'm trying to translate our courses to different languages using WPML ( The problem is that when I translate a unit it creates a new unassigned unit for each language. I don't want to create a new course for each language, but on the other hand, I don't want the translated copies of the units to show up on the original course.

Have any other customers of yours had this problem before and found a solution? Do you have any idea what I should do? I would be very grateful if you could give me any info at all."

WPCourseware Answer:

" I'm afraid there is no easy way to add unit with different language without copying unit and creating new course. This is the only way at this stage to create multilingual course. I'm sorry for any inconveniences caused by this."

We hope you can help because we are very keen to use WPML. But we need to fully understand how to do that and your last forum post only addressed the question in general terms.

We sell courses that use WPCourseware to create courses and Membermouse membership plugin to control access to a course. When a user pays for a course (PRODUCT), they get immediate access to the COURSE associated with that specific PRODUCT. At the moment all the PRODUCTS are English.

A COURSE in WPCourseware has the following structure:
COURSE>MODULE>UNIT where a unit is a custom post type

When WPML translates a WPCourseware UNIT, it creates a new UNIT. However, this is now not assigned to any COURSE.

So, my questions are:

WPCourseware comes with a COURSE PROGRESS widget. This widget loads on a page depending on the current COURSE UNIT. For instance, if the user is viewing a COURSE UNIT from COURSE-A, then the widget will display all the MODULES and UNITS in that COURSE along with the user's progress (completed UNITS are coloured green). The problem at the moment is that the widget loads, but WPCourseware cannot load the COURSE>MODULE>UNIT in the widget because the translated UNIT has not been assigned to a COURSE.

Question 1: How do we solve this issue?
Do we follow the following procedure: translate an English UNIT to, say French; then create a new French COURSE in WPCourseware following the same COURSE>MODULE>UNIT structure as the original English; then assign each and every translated French UNIT to the newly created French COURSE? But now that you have separate COURSES and not just translated versions of UNITS, what happens to the top WPML dropdown menu? Would that still work? Would WPML plugin always "know" that a UNIT is the translated version of the original UNIT? Or will there be conflicts? In other words, will this "break" WPML?

Question 2: Another issue is, if a new student signs up for a COURSE at the moment, they only get the original English COURSE version. We were under the impression that, after we translated the site to, say French and Spanish, they would get the site by default in English, then change the language in the WPML dropdown menu to any translated version. In other words, they get access to one COURSE (English) plus all the translated versions in all the languages. So, it does not matter which language they prefer because they can switch between languages. However, discussed above, when you now separate and assign the translated versions of the COURSES into new and different COURSE>MODULE> UNIT, a new student will not have access to the translated pages. For instance, if they want French, we will need to sell them a French COURSE on the checkout page, if they want Spanish, we will sell them a Spanish COURSE on the checkout page. We would prefer not to do that. What are our options?

Question 3: If you have all these different COURSES, will the translation management still work as intended? For instance, at the moment a French student has access to the original English COURSE. We want her to help translate some of the English UNITS. So we have created machine translated French versions of the English UNITS, placed it in a basket and want to share the basket with her. She will then correct the translated UNITS. What happens now as far as the unassigned UNITS are concerned?

Question 4: What happens if we make changes to UNITS in the future. Do we have to manually update all the translated UNITS? Would we still be able to do that by clicking just the original UNIT and then navigate to the translations?

Question 5: Do you have other clients using WPCouseware? If yes, would it be possible to document their solutions to these problems for future WPML signups?

Question 6: We would like to give you access to the site. How do we send you login details?

This problem was not detected on the staging site. We are working on the live site now. Hopefully, the solution is simple and straight forward. Would you mind spelling this out for us?

Thank you for helping us get WPML to work for us. We highly appreciate your time and effort.

February 26, 2019 at 6:25 pm #3246760


Languages: English (English ) German (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)


Thank you for contacting WPML support.

Yes, it’s correct that WPCourseware was not tested yet from our Compatibility Team. I personally don’t know the plugin, so it’s difficult to answer all your questions about the basic functionality in detail. Basically, you can make any Plugin work together with WPML.

I attached two documentation links for your developer to understand better how our product work:

I checked your questions and would please ask you to test the cases before. If we know what happens when you try a scenario, we can try to find a solution for you or try to contact the plugin author for a closer cooperation.

Anyway, I want to share some answers for your questions:

Question 1:

You probably can handle this with custom programming on a custom switcher, but we can’t provide a solution for this.

Question 2:
The way you expected is the way WPML is working on CPT/Pages or any other endpoint. This question is too specific to the plugin, as we support different ways to handle this functionality (Browser Language Detection, Root Page, ..)

Question 3:
I kindly ask you to test this before. My colleague Bruno answered you earlier already that it depends on how those units are created. Otherwise is difficult to answer.

Question 4:
Can you please try this to see what happens?

Question 5:
I didn’t find much information about other clients using this plugin, only one pre-sale question and a ticket from 2013. To check if the plugin is compatible we have the following site where clients can inform about the Compatibility:

Question 6:
I can activate a private reply to provide site access, but please test your scenarios before as suggested above. Then we can try to find a solution / look what happens on your site.

I hope I was able to answer you some basic questions.

Kind Regards