在php中是否有办法摆脱URL中的特定参数?
例如:我有这个链接激活了Wordpress Woocommerce前端的打印选项。 我使用mqtranslate有两种不同的语言。
... 我的帐户/郎=能量%2Fprint阶%2F2067%2F&安培;打印顺序型=收据
但这给了我一个错误,因为有
/?郎= EN
在URL的内部,应该在URL的末尾以正常工作:
/?郎= EN
我已经找到了生成此代码的代码 - 它位于第87行的woocommerce / templates / myaccount / my-orders.php中
$actions = apply_filters( 'woocommerce_my_account_my_orders_actions', $actions, $order );
if ($actions) {
foreach ( $actions as $key => $action ) {
echo '<a href="' . esc_url( $action['url'] ) . '" class="button ' . sanitize_html_class( $key ) . '">' . esc_html( $action['name'] ) . '</a>';
我尝试将$动作更改为另一个网址,但之后打印无效。
工作网址如下所示:
?... /我的账户/打印顺序/ 2083 /打印顺序型=收据&安培;朗= EN
那么如何在网址的开头删除“?lang = en”并将其设置为网址的末尾,如“&amp; lang = en”?
有没有办法在PHP中执行此操作,还是应该使用jquery?
编辑:可能像
$('td.order-actions a.print')。each(function(){ this.href = this.href.replace('?lang = en','');
也许可以做到这一点,但我不知道如何删除“斜杠”//.
这是删除lang = en的正确方法吗?我怎么能把它放在最后?
编辑2:
好的我找到了解决方案 - 但它并不完美: 我在url链接中遇到jquery语法问题:
这是我得到的链接:
...我的账户/?LANG =能量%2Fprint阶%2F2067%2F?打印顺序型=收据
我正在使用
$('td.order-actions a.print')。each(function(){ this.href = this.href.replace('/ \?lang = en','');
删除“/?lang = en”
现在的问题是,我的浏览器中的链接看起来不错
我的账户/打印顺序/ 2067 /?打印顺序型=收据
但实际上当我复制链接时,链接中总是有一个“%2F”而不是“/”,这导致了获得404的问题。
当我手动替换“%2F”时,链接可以正常工作。
问题出在哪里?有什么想法解决这个问题吗?