Hallo,
Wow... ich weiß nicht ob ich lachen oder weinen soll über diesen Lösungsvorschlag. Es fühlt sich so an, als ob du diesen Code nicht getestet, sondern mir als Kunden einfach ungetestet vor die Füße geschmissen hast, sodass ich jetzt knapp 30 Minuten dran saß, um diese paar Zeilen zu debuggen und die Fehler zu beseitigen...
Folgende Fehler sind in den wenigen Zeilen Code:
- if ($encoded_file !== false) ist keine gültige Lösung auf valides base64. Viele nicht base64 kodierte Strings (wie z.B. Dateinamen) liefern eine base64_decode Rückgabe. Lösung bringt der 2. Parameter $strict = true
- Statt "&plugin=1 muss es "?plugin=1" heißen (bei unserer permapagelink config)
- Worauf soll m_id=".$this->id." referenzieren? $this ist ein ungültiger Ausdruck an der Stelle.
- order=".$_REQUEST['order_id'] - Tippfehler? Die Downloadlinks enthalten keinen order_id Parameter, "order" ist korrekt.
- header('Redirect: '.$url); Was soll Redirect für ein HTTP Header sein? Mit Location: funktioniert es.
Zudem listet PHPCS mit WordPress coding Standards noch folgende Notices für diesen Code:
phpcs: $_REQUEST data not unslashed before sanitization. Use wp_unslash() or similar
phpcs: Detected usage of a non-sanitized input variable: $_REQUEST['m_id']
phpcs: Detected usage of a non-sanitized input variable: $_REQUEST['order']
phpcs: Detected usage of a possibly undefined superglobal array index: $_REQUEST['order']. Use isset() or empty() to check the index exists before using it
...