我正在为一个由其他德国开发商建造的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)
我怎样才能做到这一点?
谢谢
首先,这不是重复的问题 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)