小编Yog*_*gie的帖子

从电子邮件通知模板中删除客户详细信息和地址

我正在为一个由其他德国开发商建造的woocommerce创建一个主题.我创建了我的子主题并使用子主题的functions.php来更改网站的功能.

当客户订购产品时,他会收到一封电子邮件,其中包含订单表,客户信息和帐单地址以及客户送货.我想删除表格下面的所有内容并添加我自己的文本(客户信息+结算,发货和取货地址).

我在电子邮件中的订单表下方添加了我自己的文本,但是我无法删除默认显示在我自定义添加文本下方的信息.我发现钩子负责获取和显示数据woocommerce_email_order_meta,但我不知道如何删除它或阻止它执行.我不想在模板文件中进行更改,我想通过钩子来完成所有操作.

到目前为止,我尝试过这样做:

remove_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); 
Run Code Online (Sandbox Code Playgroud)

我按照链接:从woocommerce中的电子邮件模板删除订单信息部分,并尝试了以下代码,但没有工作.

function so_39251827_remove_order_details( $order, $sent_to_admin, $plain_text, $email ){
    $mailer = WC()->mailer(); // get the instance of the WC_Emails class
    remove_action( 'woocommerce_email_order_details', array( $mailer, 'order_details' ), 10, 4 );
}
add_action( 'woocommerce_email_order_details', 'so_39251827_remove_order_details', 5, 4 );
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢

php wordpress orders woocommerce hook-woocommerce

4
推荐指数
1
解决办法
2066
查看次数

使用PHP中的视频ID获取Youtube视频标题

首先,这不是重复的问题 StackOverflow关于YouTube API的其他答案是2013年之前,不再有效.

我必须使用PHP中的YouTube视频ID获取YouTube视频标题.

目前我这样做:

    $html = "http://www.youtube.com/watch?v=".$video_id;
    $doc = new DOMDocument();
    $doc->loadHTMLFile($html);
    $doc->preserveWhiteSpace = false;
    $title_div = $doc->getElementById('eow-title');
    $title = $title_div->nodeValue;
Run Code Online (Sandbox Code Playgroud)

但是这会引发错误:

Warning: DOMDocument::loadHTMLFile(http://www.youtube.com/watch?v=hMpCsfvi_3c): failed to open stream: HTTP request failed! HTTP/1.0 429 Too Many Requests in /home/vhosts/xxxx/xxxx/get_youtube_title.php on line 6

Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "http://www.youtube.com/watch?v=hMpCsfvi_3c" in /home/vhosts/xxxx/xxxx/get_youtube_title.php on line 6
Run Code Online (Sandbox Code Playgroud)

上面的方法适用于Godaddy托管,但不适用于101domain.com托管.

我尝试过的另一种方法是:

if($content=file_get_contents("http://youtube.com/get_video_info?video_id=".$video_id)) {
    parse_str($content, $ytarr);
    $myvideos[$i]['video_title']=$ytarr['title'];
}
else
$myvideos[$i]['video_title']="No title";
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

Warning: DOMDocument::loadHTMLFile(http://youtube.com/get_video_info?video_id=hMpCsfvi_3c): failed to open stream: HTTP request failed! …
Run Code Online (Sandbox Code Playgroud)

php video youtube-api

2
推荐指数
5
解决办法
2万
查看次数