你们有人知道如何通过 ajax 显示 Woocommerce 最新产品的一些简单方法(使用一些回调或类似的东西)吗?现在我有这个短代码:
[recent_products per_page="12" columns="3"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个按钮,允许在同一页面上显示接下来的 12 个产品。
我有 Woocommerce 订阅,并且 Stripe Gateway 设置并正常工作。每次我手动测试计划的续订时,它都会保存续订的新订单 ID,但我找不到访问它的方法。我设置了scheduled_subscription_payment()打印对象$order,但由于订阅引用了初始订单,order_id 始终相同。有没有办法在订阅续订触发后立即获取新订单 ID?
我引用的函数位于 Stripe WC Gateway 插件中:
public function scheduled_subscription_payment( $amount_to_charge, $order, $product_id )
Run Code Online (Sandbox Code Playgroud) 我正在使用 Woocommerce,并且希望将用户未在表单下方输入必填字段时收到的错误消息放置在结账按钮之前。
我尝试将其添加到我的functions.php中
add_action( 'woocommerce_review_order_before_payment', 'wc_print_notices', 10 );
Run Code Online (Sandbox Code Playgroud)
但这并没有改变结账公式上方出现的错误消息。
我必须删除哪个操作?
我目前正在尝试找出一种方法,在特定情况下禁用 \xc2\xab继续结帐\xc2\xbb 按钮:某些超大产品无法运送到某些国家/地区,除非客户首先要求报价。
\n\n我添加了一个功能来functions.php检测这些超大产品。
在cart-shipping.php和中cart-totals.php,我找不到应该添加的点:
remove_action(woocommerce_proceed_to_checkout','woocommerce_button_proceed_to_checkout', 20);\nRun Code Online (Sandbox Code Playgroud)\n\n可以帮忙吗?
\n\n先感谢您
\n我正在尝试开发一个自定义网关,我需要获取订单信息,例如价值、信用卡号、卡所有者姓名、地址等。获取这些信息后,我将使用 Centinel 3D Secure 提供的 API 发送请求。如果成功,他们将返回信用卡银行的网址以及我要发布到银行网址的一些其他信息。
然后,银行将使用表单将数据发布到我的回调 URL。然而我似乎无法让它工作。这是我的代码示例:
function process_payment( $order_id ) {
global $woocommerce;
//code to get data using API
if( (strcasecmp('Y', $_SESSION['Centinel_Enrolled']) == 0){
echo '<form action="'.$_SESSION["ACSUrl"].'"" method="post">
<input type=hidden name="PaReq" value="'.$_SESSION["RandomValue"].'"/>
<input type=hidden name="TermUrl" value="'$myWPCallbackUrl.'?>"/>
<input type=hidden name="MD" value="Data"/>
<input type="submit" value="Submit" id="submit_centinel_payment_form"/>
<script type="text/javascript">
jQuery(function(){
jQuery("#submit_centinel_payment_form").click();});
</script>
</form>
}
Run Code Online (Sandbox Code Playgroud)
这不会重定向到服务器。有谁知道为什么这不起作用?
首先,我想说这不是一个重复的问题,我尝试了其他答案但没有成功。
我将 ACF 字段添加到 woocommerce 类别,我需要在 woocommerce 类别存档页面上显示该字段。
下面显示了我如何添加 ACF
http://www.awesomescreenshot.com/image/1859170/1fb3dc839dff36c92d4ee52f5167ca78
http://www.awesomescreenshot.com/image/1859175/1d1e43f70ae925ac5501f9e360f4a463
它显示在产品类别管理区域
http://www.awesomescreenshot.com/image/1859197/c5df7d20319c73d94896058daa6f3f2a
但是当我尝试在类别页面上显示时,它没有显示,
<?php
$queriedObject=get_queried_object();
echo get_field('categoryslider','product_cat_'.$queriedObject->term_id);
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码是我从堆栈溢出中获得的,我还尝试了其他一些解决方案,但它不起作用,我正在使用所有插件的最新版本。
谁能帮助我吗?谢谢
我想根据当前购物车内容有条件地在类别页面上隐藏一组 Woocommerce 产品。我有一个名为“盒子”的类别,其中包含四种产品。其中两个也属于纸板类别,两个属于塑料类别。
如果 ID 23 的产品已在购物车中,我想显示塑料盒。如果不是,我想隐藏它们。我知道如何检查购物车内容,但是一旦我得到答案,如何从该页面隐藏塑料类别的产品?
add_action( 'woocommerce_before_shop_loop', 'my_before_shop_loop' );
function my_before_shop_loop() {
global $woocommerce;
$flag = 0;
foreach($woocommerce->cart->get_cart() as $key => $val ) {
$_product = $val['data'];
if ($_product->id == '23') {
$flag = 1;
}
}
if ($flag == 0) {
// hide products that are in the plastic category
// this is where I need help
}
}
Run Code Online (Sandbox Code Playgroud) 我想从 admin-new-order.php 中删除帐单地址和送货地址。我的主题中已经有它的副本。我可以删除电子邮件和电话号码,但无法删除账单和运费。
为了删除电子邮件和电话,我这样做了
add_filter( 'woocommerce_email_customer_details_fields', 'custom_woocommerce_email_customer_details_fields' );
function custom_woocommerce_email_customer_details_fields( $totals ) {
unset(
$totals['billing_email'],
$totals['billing_phone']
);
return $totals;
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我完全删除:
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
Run Code Online (Sandbox Code Playgroud)
它会删除所有内容,但我不能这样做,因为我需要在那里显示的注释和交付时间(来自插件)。如果我删除整个内容,那么它就会删除所有内容。
我试过了
unset($totals['billing_first_name']);
Run Code Online (Sandbox Code Playgroud)
虽然有很多变体,但它不起作用。
我正在使用带有会员资格的 Woocommerce 订阅,并且我想根据我的用户的会员计划对运费应用一些折扣。例如,银卡会员所有运输方式均可享受-30% 的折扣。要检查我使用的当前会员计划:
$user_id = get_current_user_id();// Get current user ID
if ( wc_memberships_is_user_active_member( $user_id, 'silver' ) ) {
//echo 'This is a special message only for Silver members!';
} else {
//echo 'I\'m sorry, you are not a silver member. There\'s nothing here for you!';
}
Run Code Online (Sandbox Code Playgroud)
但我没有找到任何方法可以通过功能来改变运费。
是否可以 ?谢谢
我真的对这个话题感到疯狂。很多人提供了解决方案,但没有一个真正适合我。我的场景可能适合很多人:
我自定义了 WooCommerce 数量输入 (/global/quantity-input.php) 并添加<input>以增加或减少数量字段中的金额:
<div class="quantity">
<input class="step-btn minus" type="button" value="-">
<input type="number" step="<?php echo esc_attr( $step ); ?>" min="<?php echo esc_attr( $min_value ); ?>" max="<?php echo esc_attr( 0 < $max_value ? $max_value : '' ); ?>" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php echo esc_attr_x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" pattern="<?php echo esc_attr( $pattern ); ?>" inputmode="<?php echo esc_attr( $inputmode ); ?>" …Run Code Online (Sandbox Code Playgroud) woocommerce ×10
wordpress ×9
php ×6
hook ×2
ajax ×1
javascript ×1
jquery ×1
post ×1
subscription ×1