我正在为woocommerce创建一个自定义主题,我需要能够创建一个迷你产品展示.我在找到woocommerce api的文档时遇到了问题.我有一个逗号分隔的产品ID列表,我需要迭代并按顺序显示每个产品ID的自定义迷你产品显示.
$key_values = get_post_custom_values('rel_products_ids');
//get comma delimited list from product
$rel_product_ids = explode(",", trim($key_values, ","));
// create array of just the product ids
foreach ( $rel_product_ids as $pid ) {
//sequentially get each id and do something with it
$loop = new WP_Query( array( 'post__in' => $pid ) );
// also tried ...
//$loop = new WP_Query( array( 'ID' => $pid ) );
while ( $loop->have_posts() ) : $loop->the_post(); $_product = &new WC_Product( $loop->post->ID );
//do stuff here I …Run Code Online (Sandbox Code Playgroud) 对于我的WC产品页面,我需要在body标签中添加一个类,以便我可以执行一些自定义样式.这是我为此创建的功能......
function my_add_woo_cat_class($classes) {
$wooCatIdForThisProduct = "?????"; //help!
// add 'class-name' to the $classes array
$classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;
// return the $classes array
return $classes;
}
//If we're showing a WC product page
if (is_product()) {
// Add specific CSS class by filter
add_filter('body_class','my_add_woo_cat_class');
}
Run Code Online (Sandbox Code Playgroud)
...但是如何获得WooCommerce猫咪ID?
我正在使用WooCommerce和Wordpress.我有一个自定义许可证密钥生成器,当有人通过WooCommerce成功购买我的插件时,我希望它能生成许可证密钥.
看起来很简单:
这就是问题所在:我真的不确定哪个钩子可以很好地用于此.Woocommerce 在他们的网站上列出了他们的整个钩子集合,但几乎没有关于哪个有利于什么的文档.
基于钩子名称,我认为这woocommerce_payment_complete将是一个很好的行动.不幸的是,似乎根本没有被解雇; 我读过的一些地方说它永远不会被解雇.
我也读过一些关于Paypal IPN的内容,但是我不明白我是如何从那里获取通知的(连接到Woocommerce钩子吗?)
简而言之,我想在验证付款后立即生成许可证密钥.为了达到这个目的,我该怎么做?
我想从我的帐户页面中删除下载菜单.
我怎样才能做到这一点?从菜单中删除特定项目是否有任何钩子?
谢谢.
我需要在产品详细信息页面上的Woocommerce中隐藏"数量"字段(在添加到购物车之前输入数量),并且仅显示"添加到购物车"按钮,然后将数量设置为1在购物车中.原因是因为我根据重力形式收集数量.
在Woocommerce中,我试图找到一种方法,如果购物车中的重量超过100磅,则可以对整个客户的订单应用10%的折扣.我是实现这一目标的一部分.对于下一步,我正在寻找一种通过actions.php以动作/钩子编程方式应用优惠券代码的方法.
似乎我可以使用函数woocommerce_ajax_apply_coupon来执行此操作(http://docs.woothemes.com/wc-apidocs/function-woocommerce_ajax_apply_coupon.html)但我不确定如何使用它.
到目前为止,我已经修改了cart.php以获得购物车中所有产品的总重量,我创建了一个应用折扣的优惠券(如果手动输入),我已经在functions.php中添加了一些代码来检查重量并向用户显示消息.
编辑:删除了部分代码,完成的代码包含在下面的解决方案中.
感谢Freney的指导.这是工作最终结果,它在条件满足时成功应用折扣优惠券,并在不再符合条件时将其删除:
/* Mod: 10% Discount for weight greater than 100 lbs
Works with code added to child theme: woocommerce/cart/cart.php lines 13 - 14: which gets $total_weight of cart:
global $total_weight;
$total_weight = $woocommerce->cart->cart_contents_weight;
*/
add_action('woocommerce_before_cart_table', 'discount_when_weight_greater_than_100');
function discount_when_weight_greater_than_100( ) {
global $woocommerce;
global $total_weight;
if( $total_weight > 100 ) {
$coupon_code = '999';
if (!$woocommerce->cart->add_discount( sanitize_text_field( $coupon_code ))) {
$woocommerce->show_messages();
}
echo '<div class="woocommerce_message"><strong>Your order is over 100 lbs so a 10% Discount has …Run Code Online (Sandbox Code Playgroud) 我正在开发一个woocommerce WordPress插件的扩展.
我想在自定义函数中显示循环外的货币符号
我有以下内容:
function my_function( ) {
global $woocommerce;
echo get_woocommerce_currency_symbol();
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但这不输出符号?我错过了什么吗?
我是WooCommerce的新手.无论如何,我想创建自己的主题,所以我遵循指南并将核心模板文件复制到/ mywordpresstheme/woocommerce /.
一切都很好,我正在编辑模板就好了.
然而,在WooCommerce中钩子和动作的工作方式令我感到困惑,我无法确定生成的HTML的某些部分来自何处.
例如,在content-product.php,有一个获取图像的钩子:
<?php
/*
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
?>
Run Code Online (Sandbox Code Playgroud)
但这是什么?它从何而来??在动作名称中是否有任何线索可以找到为编辑它而生成的HTML的位置?
我已经阅读了关于WooCommerce的"钩子和过滤器"的文章,但它没有解释在何种情况下或如何根据案例更改这些内容.
任何帮助将不胜感激.
我是这个系统的新手,我确信我只是在看一些非常明显的东西.
谢谢,Mikey.
wordpress wordpress-theming wordpress-plugin e-commerce woocommerce
请告诉我哪里出错了.产品特色图片未显示.
$args = array( 'post_type' => 'product', 'posts_per_page' => 80, 'product_cat' => 'profiler', 'orderby' => 'rand' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<div class="dvThumb col-xs-4 col-sm-3 col-md-3 profiler-select profiler<?php echo the_title(); ?>" data-profile="<?php echo $loop->post->ID; ?>">
<img src="<?php get_the_post_thumbnail($loop->post->ID); ?>" data-id="<?php echo $loop->post->ID; ?>">
<p><?php the_title(); ?></p>
<span class="price"><?php echo $product->get_price_html(); ?></span>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经在后端添加了一个精选图片
通常,wooCommerce应该自动完成虚拟产品的订单.但它没有,这是一个真正的问题,甚至像BUG一样.
所以在这一点上你可以找到有用的东西(但不是很方便):
1)一个代码片段(你可以在wooCommerce docs中找到):
Run Code Online (Sandbox Code Playgroud)/** * Auto Complete all WooCommerce orders. */ add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); }但此代码段不适用于BACS*,付款时付款和支票付款方式.它适用于Paypal和信用卡网关支付方式.
*BACS 是直接银行转账付款方式
而......
2)插件: WooCommerce自动完成订单
此插件适用于所有付款方式,但不适用于其他信用卡网关付款方式.
我的问题:
在第1点中使用(作为基础)wooCommerce代码段:
如何实现基于woocommerce支付方式的条件代码?
我的意思是:如果付款方式不是"BACS","付款时付款"和"支票",则应用代码段(对于虚拟产品的付款订单,更新状态为"已完成").
我不是一个wooCommerce巨型专家编码器,所以我还没有找到如何在woocommerce订单中定位付款方式.
一些帮助将是非常好的.
谢谢.
woocommerce ×10
wordpress ×9
php ×6
account ×1
coupon ×1
discount ×1
e-commerce ×1
orders ×1
paypal ×1