LearnDash Create New answer type to process text field as code












0















There are several answer_types to WordPress plugin LearnDash. They all filter the quiz answers in unique ways. I want to filter a 'cloze_answer' type to be able to write code (snippets) into the answer text fields.



There is a filter named learndash_quiz_question_cloze_answers_to_lowercase which uses $user_answer_formatted = strtolower( $userResponse[ $answerIndex ] ); to make answers non-case-sensitive;



add_filter( 'learndash_quiz_question_cloze_answers_to_lowercase', 
so11122018_cloze_answer_lowercase_nulled' );
function so11122018_cloze_answer_lowercase_nulled(
$convert_answer_to_lower = true )
{
global $post;

if ( empty( $post) || $post->post_type == 'sfwd-quiz' ) {
return '';
}
$convert_answer_to_lower = false;

// Always return $convert_answer_to_lower
return $convert_answer_to_lower;
}


But if I add_ filter to set this to "false", upon any "cloze_answer" type, ALL cloze answer types get hit with the learndash_quiz_question_cloze_answers_to_lowercase and those non-code based answers need to stay NOT case-sensitive.



My first thoughts were to create a new custom answer type. Does anyone have a way to do this?



But if there is an easier way, for example, add a shortcode into the LD answer textfield that will filter ONLY code types....










share|improve this question



























    0















    There are several answer_types to WordPress plugin LearnDash. They all filter the quiz answers in unique ways. I want to filter a 'cloze_answer' type to be able to write code (snippets) into the answer text fields.



    There is a filter named learndash_quiz_question_cloze_answers_to_lowercase which uses $user_answer_formatted = strtolower( $userResponse[ $answerIndex ] ); to make answers non-case-sensitive;



    add_filter( 'learndash_quiz_question_cloze_answers_to_lowercase', 
    so11122018_cloze_answer_lowercase_nulled' );
    function so11122018_cloze_answer_lowercase_nulled(
    $convert_answer_to_lower = true )
    {
    global $post;

    if ( empty( $post) || $post->post_type == 'sfwd-quiz' ) {
    return '';
    }
    $convert_answer_to_lower = false;

    // Always return $convert_answer_to_lower
    return $convert_answer_to_lower;
    }


    But if I add_ filter to set this to "false", upon any "cloze_answer" type, ALL cloze answer types get hit with the learndash_quiz_question_cloze_answers_to_lowercase and those non-code based answers need to stay NOT case-sensitive.



    My first thoughts were to create a new custom answer type. Does anyone have a way to do this?



    But if there is an easier way, for example, add a shortcode into the LD answer textfield that will filter ONLY code types....










    share|improve this question

























      0












      0








      0








      There are several answer_types to WordPress plugin LearnDash. They all filter the quiz answers in unique ways. I want to filter a 'cloze_answer' type to be able to write code (snippets) into the answer text fields.



      There is a filter named learndash_quiz_question_cloze_answers_to_lowercase which uses $user_answer_formatted = strtolower( $userResponse[ $answerIndex ] ); to make answers non-case-sensitive;



      add_filter( 'learndash_quiz_question_cloze_answers_to_lowercase', 
      so11122018_cloze_answer_lowercase_nulled' );
      function so11122018_cloze_answer_lowercase_nulled(
      $convert_answer_to_lower = true )
      {
      global $post;

      if ( empty( $post) || $post->post_type == 'sfwd-quiz' ) {
      return '';
      }
      $convert_answer_to_lower = false;

      // Always return $convert_answer_to_lower
      return $convert_answer_to_lower;
      }


      But if I add_ filter to set this to "false", upon any "cloze_answer" type, ALL cloze answer types get hit with the learndash_quiz_question_cloze_answers_to_lowercase and those non-code based answers need to stay NOT case-sensitive.



      My first thoughts were to create a new custom answer type. Does anyone have a way to do this?



      But if there is an easier way, for example, add a shortcode into the LD answer textfield that will filter ONLY code types....










      share|improve this question














      There are several answer_types to WordPress plugin LearnDash. They all filter the quiz answers in unique ways. I want to filter a 'cloze_answer' type to be able to write code (snippets) into the answer text fields.



      There is a filter named learndash_quiz_question_cloze_answers_to_lowercase which uses $user_answer_formatted = strtolower( $userResponse[ $answerIndex ] ); to make answers non-case-sensitive;



      add_filter( 'learndash_quiz_question_cloze_answers_to_lowercase', 
      so11122018_cloze_answer_lowercase_nulled' );
      function so11122018_cloze_answer_lowercase_nulled(
      $convert_answer_to_lower = true )
      {
      global $post;

      if ( empty( $post) || $post->post_type == 'sfwd-quiz' ) {
      return '';
      }
      $convert_answer_to_lower = false;

      // Always return $convert_answer_to_lower
      return $convert_answer_to_lower;
      }


      But if I add_ filter to set this to "false", upon any "cloze_answer" type, ALL cloze answer types get hit with the learndash_quiz_question_cloze_answers_to_lowercase and those non-code based answers need to stay NOT case-sensitive.



      My first thoughts were to create a new custom answer type. Does anyone have a way to do this?



      But if there is an easier way, for example, add a shortcode into the LD answer textfield that will filter ONLY code types....







      wordpress hook custom-post-type






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 12 '18 at 19:55









      tradesouthwesttradesouthwest

      3116




      3116
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53269202%2flearndash-create-new-answer-type-to-process-text-field-as-code%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53269202%2flearndash-create-new-answer-type-to-process-text-field-as-code%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Full-time equivalent

          さくらももこ

          13 indicted, 8 arrested in Calif. drug cartel investigation