【问题标题】:displaying a gif in php code in wordpress在 wordpress 的 php 代码中显示 gif
【发布时间】:2018-12-23 06:52:39
【问题描述】:

我最近接手了一个客户项目,该项目是用 wordpress 和 java 脚本构建的网站。之前的开发者没有评论他们的代码,所以我花了一些时间来破译它。

该网站使用 woocommerce 作为在线商店。客户要求,当用户付款时,随后的感谢屏幕会显示一个动画 gif 表示感谢。

在标准的 woocommerce 结帐页面上插入 gif 可以正常工作。然而,客户希望它在购买后显示在以代码创建的感谢页面上。代码如下所示:

<?php if ( $order->has_status( 'failed' ) ) : ?>

    <p><?php esc_html_e( 'Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction.', "wp-experts" ); ?></p>

    <p><?php
        if ( is_user_logged_in() )
            esc_html_e( 'Please attempt your purchase again or go to your account page.', "wp-experts" );
        else
            esc_html_e( 'Please attempt your purchase again.', "wp-experts" );
    ?></p>

    <p>
        <a href="<?php echo esc_url( $order->get_checkout_payment_url() ); ?>" class="button pay"><?php esc_html_e( 'Pay', "wp-experts" ) ?></a>
        <?php if ( is_user_logged_in() ) : ?>
        <a href="<?php echo esc_url( wc_get_page_permalink( 'myaccount' ) ); ?>" class="button pay"><?php esc_html_e( 'My Account', "wp-experts" ); ?></a>
        <?php endif; ?>
    </p>

<?php else : ?>

    <p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', "wp-experts" ), $order ); ?></p>
    <ul class="order_details pull-left">
        <li class="order">
            <?php esc_html_e( 'Order Number:', "wp-experts" ); ?>
            <strong><?php echo ''.$order->get_order_number(); ?></strong>
        </li>
        <li class="date">
            <?php esc_html_e( 'Date:', "wp-experts" ); ?>
            <strong><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></strong>
        </li>
        <li class="total">
            <?php esc_html_e( 'Total:', "wp-experts" ); ?>
            <strong><?php echo ''.$order->get_formatted_order_total(); ?></strong>
        </li>
        <?php if ( $order->payment_method_title ) : ?>
        <li class="method">
            <?php esc_html_e( 'Payment Method:', "wp-experts" ); ?>
            <strong><?php echo ''.$order->payment_method_title; ?></strong>
        </li>
        <?php endif; ?>



    </ul>
    <a href="<?php echo  get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" class="btn btn-success pull-right">CLICK HERE TO GET STARTED!</a>
    <div class="clear"></div>

<?php endif; ?>

<?php do_action( 'woocommerce_thankyou_' . $order->payment_method, $order->id ); ?>
<?php do_action( 'woocommerce_thankyou', $order->id ); ?>
<p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', "wp-experts" ), null ); ?></p>

我在 google 上搜索过如何在 php 中显示 gif。

gif上传到我发到主题的images子目录中

我使用过类似stackoverflow的想法

$file = 'Camel-continuous-1.gif'

header('Content-type: image/gif');
readfile($file);

但这只会使网页崩溃。我把它放在上面代码中的付款方式行之后。

有什么想法吗?提前致谢

【问题讨论】:

  • 我真的不明白你想要什么。您要在“谢谢”页面上显示 GIF,还是要在页面上而不是显示 GIF?

标签: php wordpress image gif


【解决方案1】:

我无法根据代码片段告诉插入它的位置,但如果你

<?php
//supposing the gif is in the same folder
$file = 'Camel-continuous-1.gif'; 

echo "<img src=\"".$file."\">";
?>

更短的你可以这样说:

<?php='<img src="/gifs/Camel-continuous-1.gif" >'?>

如果你想使用short open tag,或者更简单

<?='<img src="/gifs/Camel-continuous-1.gif" >'?>

玩得开心

【讨论】:

  • 感谢您的帮助。解决方案奏效了。我有一个跟进点。我试图使用 img 中的宽度和高度参数来更改图像的大小,但它感到不安,例如code code 但它对这些参数感到不安。有任何想法吗?它拒绝显示 gif。
  • 是的,因为你混合了抽动症,请看我的第二个答案
【解决方案2】:

就像@flomei 我不确定我是否理解你想要的,但如果你只是想要“谢谢”​​文本附近的某个地方的 gif,你可以在 php.ini 中回显它。这会将它放在文本“谢谢。您的订单已收到”上方:

<?php if ( $order->has_status( 'failed' ) : ?>
    <?php // deleted your existing code. ?>
<?php else : ?>
    <?php echo '<img src="Camel-continuous-1.gif"> ?>
    <?php // more deleted code. ?>
<?php endif; ?>

【讨论】:

    【解决方案3】:

    这对您不起作用,因为您混淆了报价。如果使用双引号来分隔字符串,则必须反斜杠或在内部使用单引号。 以类似的方式,如果用单引号分隔字符串,则必须使用双引号。

    <?php
    // this outputs a error
    $file = '/uploads/2018/07/Camel-continuous-2.gif'; 
    echo "<img width="251" height="243" src=\"".$file."\">"; 
    
    ?>
    

    这适用于任何 php 版本。这是在引号内使用反斜杠引号的干净方法

    <?php
    
    $file = "/uploads/2018/07/Camel-continuous-2.gif"; 
    echo "<img width=\"251\" height=\"243\" src=\"".$file."\">"; 
    
    ?> 
    

    这也适用于某些 php 版本。 (在简单引号内使用双引号

    <?php
    
    $file = '/uploads/2018/07/Camel-continuous-2.gif'; 
    echo '<img width="251" height="243" src="'.$file.'">'; 
    
    ?> 
    

    这也将根据您的 php 版本为您工作。在双引号内使用简单引号

    <?php
    
    $file = "/uploads/2018/07/Camel-continuous-2.gif"; 
    echo "<img width='251' height='243' src='".$file."'>"; 
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      相关资源
      最近更新 更多