借助WooCommerce,我使用供应商插件,允许人们上传自己的产品。
但是我只希望他们上传虚拟和可下载的产品。
有没有办法在普通的woocommerce上删除(甚至隐藏)这些选项"添加产品页面"并自动检查他们?
在我审核所有提交内容时,不需要无法规避 - 只是想让提交过程尽可能简单。
由于
答案 0 :(得分:4)
对于虚拟产品,只能看到最后的更新
这是可能的但很安静,很长且很复杂,无法测试和解释......您必须通过2种方式,特定用户角色或其用户角色的特定功能来定位这些用户。
然后可以用注入的CSS隐藏一些设置,并使用javascript / jQuery来设置这个隐藏的设置......
在下面的工作示例中,我使用jQuery启用了
'virtual'
和'downloadable'
设置cheeckboxes,我将它们隐藏起来主要使用不透明度CSS规则...
我使用隐藏在 woocommerce_product_options_general_product_data
动作挂钩中的自定义函数,这样:
add_action( 'woocommerce_product_options_general_product_data', 'hiding_and_set_product_settings' );
function hiding_and_set_product_settings(){
## ==> Set HERE your targeted user role:
$targeted_user_role = 'administrator';
// Getting the current user object
$user = wp_get_current_user();
// getting the roles of current user
$user_roles = $user->roles;
if ( in_array($targeted_user_role, $user_roles) ){
## CSS RULES ## (change the opacity to 0 after testing)
// HERE Goes OUR CSS To hide 'virtual' and 'downloadable' checkboxes
?>
<style>
label[for="_virtual"], label[for="_downloadable"]{ opacity: 0.2; /* opacity: 0; */ }
</style>
<?php
## JQUERY SCRIPT ##
// Here we set as selected the 'virtual' and 'downloadable' checkboxes
?>
<script>
(function($){
$('input[name=_virtual]').prop('checked', true);
$('input[name=_downloadable]').prop('checked', true);
})(jQuery);
</script>
<?php
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
您必须使用特定目标用户角色替换“管理员”用户角色 您必须将不透明度设置为0,才能完全隐藏该复选框。
经过测试和工作
添加对于许多用户角色:
1)替换此行:
$targeted_user_role = 'administrator';
......按此行:
$targeted_user_roles = array( 'administrator', 'shop_manager' );
2)并替换这一行:
if ( in_array($targeted_user_role, $user_roles) ){
......按此行:
if ( array_intersect( $targeted_user_roles, $user_roles ) ){
现在代码将适用于许多用户定义的用户角色
默认情况下设置VIRTUAL选项(并隐藏它):
要默认隐藏和设置虚拟选项,您将使用:
add_action( 'woocommerce_product_options_general_product_data', 'hide_and_enable_virtual_by_default' );
function hide_and_enable_virtual_by_default(){
## HERE Goes OUR CSS To hide 'virtual'
<style>
label[for="_virtual"], label[for="_downloadable"]{ opacity: 0; }
</style>
<?php
## JQUERY SCRIPT ##
// Here we set as selected the 'virtual' checkboxes by default
?>
<script>
(function($){
$('input[name=_virtual]').prop('checked', true);
})(jQuery);
</script>
<?php
}
代码进入活动子主题(或主题)的function.php文件或任何插件文件。经过测试和工作。
答案 1 :(得分:0)
使用此简单解决方案:
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('dente6.jpg',0)
plt.imshow(img,cmap='gray')
dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
fshift = np.fft.fftshift(dft)
magnitude_spectrum = 20*np.log(cv2.magnitude(fshift[:,:,0],fshift[:,:,1]))
plt.imshow(magnitude_spectrum,cmap='gray')
for i in range(fshift.shape[0]):
for j in range(fshift.shape[1]):
x = magnitude_spectrum[i][j]
if x < 200:
fshift[i][j] = 0
magnitude_spectrum = 20*np.log(cv2.magnitude(fshift[:,:,0],fshift[:,:,1]))
plt.imshow(magnitude_spectrum,cmap='gray')
ifshift= np.fft.ifftshift(fshift)
img_back = cv2.idft(ifshift)
img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])
plt.imshow(img_back,cmap='gray')