Php 提取WooCommerce属性并将其放入GoogleBookViewer脚本
我将在我的网站中使用谷歌图书嵌入式查看器,它使用WordpressCMS和Woocommerce插件运行 我的想法是,将每个产品(这里是一本书)的一个Woocommerce属性分配给相关的书籍Google books ID(类似于0738531367),然后使用一个方法,将该字符串插入到查看器脚本中,最简单的形式如下所示Php 提取WooCommerce属性并将其放入GoogleBookViewer脚本,php,wordpress,api,woocommerce,Php,Wordpress,Api,Woocommerce,我将在我的网站中使用谷歌图书嵌入式查看器,它使用WordpressCMS和Woocommerce插件运行 我的想法是,将每个产品(这里是一本书)的一个Woocommerce属性分配给相关的书籍Google books ID(类似于0738531367),然后使用一个方法,将该字符串插入到查看器脚本中,最简单的形式如下所示 <script type="text/javascript" src="http://books.google.com/books/previewlib.js">&
<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
<script type="text/javascript">
GBS_insertEmbeddedViewer('4rghAwAAQBAJ',600,500);
</script>
GBS_insertEmbeddedViewer('4rghAwAAQBAJ',600500);
现在,如何从Woocommerce中提取此字符串(属性)并将其放入查看器脚本中
更具体的解释 (一个商业产品页面) 此页面提供的图书已被赋予一个属性,该属性的值为Google Books ID。可以在“谷歌图书”选项卡的最低一行找到该属性 在将此ID插入上述代码并将整个修改后的代码放入书籍页面HTML代码后,与本书对应的著名Google Books嵌入式查看器出现在“توضیح㶬ش”选项卡中 但是,当我面对大量的书要添加时,这个过程非常耗时,而且实际上是不可能的 在WooCommerce(或主题)模板中嵌入查看器代码非常简单页面一次。因此,对于每本书,唯一的工作就是在预定义属性中定义所谓的书ID 毕竟,还有一项任务:将此ID传输到查看器代码。我认为可以使用Wordpress钩子、php函数等来处理它。不幸的是,在网上搜索没有结果(包括谷歌图书支持论坛和Wordpress支持目录)。是的(另请参见),但我将展示如何使用普通的元框进行搜索
<?php
/**
* Plugin Name: (SO) Book ID
*/
add_action( 'add_meta_boxes', 'add_box_so_26564103' );
add_action( 'save_post', 'save_so_26564103', 10, 2 );
function add_box_so_26564103() {
add_meta_box(
'sectionid',
'Book ID',
'inner_box_so_26564103',
'product',
'side',
'low'
);
}
function inner_box_so_26564103($post)
{
wp_nonce_field( plugin_basename( __FILE__ ), 'noncename' );
$saved = get_post_meta( $post->ID, '_book_id', true);
printf(
'<label>Enter the ID <input type="text" name="_book_id" value="%s" /></label>',
$saved ? $saved : ''
);
}
function save_so_26564103( $post_id, $post_object )
{
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( !wp_verify_nonce( $_POST['noncename'], plugin_basename( __FILE__ ) ) )
return;
if ( 'revision' == $post_object->post_type )
return;
if ( isset( $_POST['_book_id'] ) )
update_post_meta( $post_id, '_book_id', $_POST['_book_id'] );
else
delete_post_meta( $post_id, '_book_id' );
}
您没有提到您正在谈论的确切页面。或者,展示一些网站HTML示例,看看WC是如何添加数据的。@brasofilo非常感谢您的关注。在原来的问题上添加了一些注释。Shaqpad,你的工作是让任何想回答你的问题的人都能轻松地读懂你的问题并了解全貌。因此,描述问题并显示相关代码片段是至关重要的。我试着查看你的页面,但是RTL和阿拉伯语对我来说是陌生的,我不知道要找什么。这是一个有趣的问题,请查看指南,并在更新问题后给我回电话。@brasofilo早上好!(这里是日出)。实际上,那一页的语言是波斯语,而不是阿拉伯语。好的,我会创建一个新的英文页面,按照你说的做,给我几个小时。
<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
<script type="text/javascript">
GBS_insertEmbeddedViewer('<?php echo get_post_meta( $post->ID, "_book_id", true); ?>',600,500);
</script>