LearnPress Lesson Template Changes

This is an old article and might not work in the newer version. Please see the updated article here.

Many of you including me, must at least once have come upon this cumbersome task – To change the LearnPress Lesson Template. Where are my headers, menus and Footers?
And as a loyal Google users, we’ve search adding every related words, search every forums to this task only to be frustrated and exhausted. No help from lord Google

And so I decided to take it all by myself. And finally, was able change this stubborn LearnPress lesson template. So here below the procedure I followed or simply say how I’d overcome this task.
Hope some of you might benefit from this.

CAVEAT – If you know basic PhP, WordPress and HTML and CSS then only proceed with caution.
What have worked in my case, might not work in your case.

And then versions
WordPres Version: 5.2.2
LearnPress Version: 3.2.5.6

Here below is the default template design of the LearnPress where both header and footer are hidden by the lesson list and its content.

Now, Let’s find which file in LearnPress plugins are responsible for this lesson template from top to bottom.

plugins/learnpress/templates/content-single-item.php – is the main lesson template
plugins/learnpress/templates/single-course/content-item.php – holds lesson’s content and lesson header
plugins/learnpress/templates/single-course/content-item/header.php – holds the top search form
plugins/learnpress/templates/single-course/tabs/curriculum.php – holds curriculum left lists

Behind The Scene

They have done it by targeting ID of the elements and making them fixed and absolute position. So first let’s change the “id” of the elements so that they could not target with their js/css code. To do so, we have to copy the individual files in our theme file, creating a directory called “learnpress”. If you see at the top of each file, they are suggesting and in their own words.

This template can be overridden by copying it to yourtheme/learnpress/content-single-course.php


File #1 – plugins/learnpress/templates/content-single-item.php – is the main lesson template
Nothing to do here and not going into details here, but this below code is responsible for loading the contents (left lists, search header and lesson content)

do_action( 'learn-press/single-item-summary' );

File 2 – plugins/learnpress/templates/single-course/content-item.php – holds lesson’s content and lesson header

<div id="learn-press-content-item"> to <div id="learn-press-content-item-custom">
<div class="content-item-scrollable"> to <div class="content-item-scrollable-custom">

Here we just changed the “id” adding “-custom” so that LearnPress js/css would not apply to this div


File #3 – plugins/learnpress/templates/single-course/content-item/header.php – holds the top search form

<div id="course-item-content-header"> to <div id="course-item-content-header-custom">
<div class="content-item-scrollable"> to <div class="content-item-scrollable-custom">

Here also, added “-custom” so their js/css would not apply. Note if you look at the top of this file, they are suggesting to put this file in learnpress/single-course/header.php but actually it should be learnpress/single-course/content-item/header.php


File #4 – plugins/learnpress/templates/single-course/tabs/curriculum.php – holds curriculum left lists

<div class="course-curriculum" id="learn-press-course-curriculum"> to <div class="course-curriculum" id="learn-press-course-curriculum-custom">

At this point, your page will be broken in terms of css but hold on. The good part comes later. Let’s add some styles.

/** * learnpress lesson custom css * * Important but you can change it as per your design */
html,
body {
    overflow: unset !important;
}

div#learn-press-course {
    display: flex;
    margin-left: -20px;
}

div#learn-press-course-curriculum-custom,
#learn-press-content-item-custom {
    margin-left: 20px;
}

div#learn-press-course-curriculum-custom {
    flex-basis: 35%;
}

#learn-press-content-item-custom div#course-item-content-header-custom {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
}

/* * Not Important * * Some inner content design but you should be fine now adding whatever you want in your design */
#course-item-content-header-custom .course-item-search form {
    display: flex;
}

#course-item-content-header-custom .course-item-search button:after {
    font-family: fontawesome;
    content: "\f002";
}

#course-item-content-header-custom .course-title {
    margin: 0;
    padding: 0;
    font-size: 1em;
}

After all above changes, you should get the following design, where you will have all your header and footer same as other pages in your site and the lessons as the content within the page. Of course, for twentyseventeen theme I had to bump the content width with css.

Hence, good luck, this is just the tip of the iceberg. I know, if you had to change this design, then, probably you must have whole other level of changes to be done but yeah my part is done here and your’s has just started.

P.S. A twentyseventeen theme, Com on, Give me real world example. You might say, so for you my friend here is the screenshot below of Eduma Theme I had to work on. Gotcha!

Final note: Most themes using LearnPress will add additional styles based on the “id” so after changing the “id” you have to add design again by yourself. Just copy and paste the related css comparing before design and put them in your css file. I had to redesign some of the elements like headings, icons, ul, li, font-size, line-height to make same as original theme design. So please be aware of that before you make changes.

Comments

16 responses to “LearnPress Lesson Template Changes”

  1. Sean Avatar
    Sean

    Just wanted to say THANK YOU.

  2. Brian Heart Avatar
    Brian Heart

    Great content related to Learnpress

    1. supervisor Avatar
      supervisor

      Thanks Brian. Hope it helped to you.

      1. Eight Avatar
        Eight

        Hey hello, I would be grateful if you would respond to my comment. I’ve been suffering for the last two days doing what you wrote, but I can’t find files under that name anywhere to edit and finally put – custom. And I would be grateful if you could explain to me how and what I should do. It must be different now. I will honor you.

  3. David Avatar
    David

    From Uganda, thanks alot for this!

  4. Sahib Singh Avatar

    hello please help me to do this its urgent

  5. Maria Gonçalves Avatar
    Maria Gonçalves

    Almost amazing, but I don’t have any code line such as in header.php file and changing the other code line removes scroll on my course 🙁 It’s just the only problem, everything else worked perfectly but without scroll I can’t use this.

    And it was so important because with my WordPress Theme nav menu is appearing in my lessons but overwrited in course name so it’s a really mess and your article was the only thing that almost solved it.

    And I don’t know almost nothing about code, I just followed your steps with attention.

    Thank you anyway

    1. Grg Ugene Avatar
      Grg Ugene

      Hi Maria, can you tell me which version of the LearnPress you are using? I had wrote this article almost 2yrs ago now so need to check on some changes.
      Regards.

      1. Adam Rooth Avatar
        Adam Rooth

        Hi,

        In the latest version of LearnPress the course detail page files are not getting overwritten. ie: single-course, content-single-course. Can you please check this and provide a solution.

        Thanks

        1. Grg Ugene Avatar
          Grg Ugene

          Hello Adam, it is an old article. Yes it is not working for the latest version. Please see this new article from me. A part 2, where I just revisited the case. https://www.ugenegrg.com.np/learnpress-lesson-template-changes-part-2/

  6. Aprendo Sencillo Avatar
    Aprendo Sencillo

    Ayuda! quiero poner el contenido de un quiz al momento de iniciar el quiz, no antes porque ahi adjunto un pdf con las preguntas, ayuda por favor!! Digamos que solo pongo un pdf con las preguntas y abajo solo el numero de preguntas con los incisos. Solo quiero poder cambiar de lugar el contenido del quiz de antes de iniciarlo a cuando ya se inicio

    1. Grg Ugene Avatar
      Grg Ugene

      Hi, thanks but I have not dealt with the quizzs (since I am not native Spanish speaker had to translate) and others. So i could not be of much help for you.
      My Apologies. Hope you will find your solution.

  7. Marcos Avatar
    Marcos

    omg thanks for share this!

    Regards from Argentina

    1. Grg Ugene Avatar
      Grg Ugene

      Glad to hear it worked for you. Thank you.

Leave a Reply

Your email address will not be published. Required fields are marked *